/*
 Navicat Premium Data Transfer

 Source Server         : 116.205.164.251
 Source Server Type    : MySQL
 Source Server Version : 50739 (5.7.39)
 Source Host           : 116.205.164.251:3306
 Source Schema         : zxw_article

 Target Server Type    : MySQL
 Target Server Version : 50739 (5.7.39)
 File Encoding         : 65001

 Date: 15/10/2022 23:02:56
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_article
-- ----------------------------
DROP TABLE IF EXISTS `t_article`;
CREATE TABLE `t_article` (
  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章id',
  `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章标题',
  `author` varchar(32) NOT NULL COMMENT '文章作者',
  `short_line` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文章简介',
  `cover` varchar(2000) NOT NULL COMMENT '封面图片',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章内容（富文本）',
  `category_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章分类',
  `count_scan` int(5) NOT NULL DEFAULT '1' COMMENT '文章浏览数',
  `is_carousel` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '文章是否轮播',
  `is_recommend` tinyint(1) NOT NULL DEFAULT '1' COMMENT '文章是否推荐',
  `is_original` tinyint(1) DEFAULT '1' COMMENT '文章是否原创',
  `is_top` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否置顶',
  `tag_ids` varchar(255) DEFAULT NULL COMMENT '文章标签',
  `version` bigint(20) unsigned DEFAULT '1' COMMENT '乐观锁',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除状态 : 1 未删除，0 已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章信息表';

-- ----------------------------
-- Records of t_article
-- ----------------------------
BEGIN;
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572983764238966786', '男子8年交往20多名女友骗走近700万 以恋爱等手段得逞：网友称真渣男', '测试111111', '男子8年交往20多名女友骗走近700万 以恋爱等手段得逞：网友称真渣男', 'https://img2.baidu.com/it/u=3838226907,950299839&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571872685987414018', 1, 1, 1, 1, 1, '1', 2, '2022-09-01 16:18:48', '2022-10-12 12:28:23', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291076711325698', '中纪委同日处理四“老虎”，有何深意？', '测试2', '中纪委同日处理四“老虎”，有何深意？', 'https://img2.baidu.com/it/u=1311879768,1954783663&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=288', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571867504809820161', 0, 1, 1, 1, 1, '1', 1, '2022-09-02 12:39:57', '2022-10-12 12:28:27', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291229824393218', '突发！韩国一载有198人的客机，起飞滑跑时撞机！画面曝光', '测试3', '突发！韩国一载有198人的客机，起飞滑跑时撞机！画面曝光', 'https://img0.baidu.com/it/u=3184080655,4155155271&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=310', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571872784280928258', 0, 1, 1, 1, 1, '1', 1, '2022-09-03 12:40:34', '2022-10-12 12:28:31', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291299042992129', '伊藤美诚豪言成都世乒赛要全胜 张本智和说要拿两分', '测试4', '伊藤美诚豪言成都世乒赛要全胜 张本智和说要拿两分', 'https://img0.baidu.com/it/u=3572433940,586155032&fm=253&fmt=auto&app=120&f=PNG?w=763&h=457', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571883065136594945', 3, 1, 1, 1, 1, '1', 4, '2022-09-04 12:40:50', '2022-10-12 12:28:34', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291354210672642', '点读机女孩称已保研中传，网友：妈妈的确不用担心你的学习啦', '测试5', '点读机女孩称已保研中传，网友：妈妈的确不用担心你的学习啦', 'https://img1.baidu.com/it/u=3621621563,3104088582&fm=253&fmt=auto&app=138&f=JPEG?w=700&h=400', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571867504809820161', 0, 1, 0, 1, 1, '1', 1, '2022-09-05 12:41:03', '2022-10-12 12:28:38', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291407553830913', '再婚一年后，亚马逊创始人前妻提出离婚，身家高达289亿美元', '测试6', '再婚一年后，亚马逊创始人前妻提出离婚，身家高达289亿美元', 'https://img0.baidu.com/it/u=1035151578,3277640022&fm=253&fmt=auto&app=138&f=JPEG?w=474&h=310', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571872439660134401', 0, 1, 1, 1, 1, '1', 1, '2022-09-06 12:41:16', '2022-10-12 12:28:42', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291457122115586', '中国女篮击败法国队晋级世界杯四强', '测试7', '中国女篮击败法国队晋级世界杯四强', 'https://img2.baidu.com/it/u=1508310021,3270094571&fm=253&fmt=auto&app=138&f=JPG?w=500&h=222', '<h1 id=\"62rq9\"><p>新华社悉尼9月29日电 29日，在2022年女篮世界杯四分之一决赛中，中国队以85：71击败法国队，晋级四强。这是中国女篮自1994年女篮世锦赛（女篮世界杯前身）获得亚军以来，首次在该项赛事中闯入半决赛。</p><p><img src=\"https://pics4.baidu.com/feed/4ec2d5628535e5dd8f7a3a8d19d2a0e4ce1b6229.jpeg@f_auto?token=84ef867113231e3f8ab629106face220\"/></p><p><br/></p></h1>', '1571873451057823746', 0, 1, 1, 1, 1, '1', 1, '2022-09-07 12:41:28', '2022-10-12 12:28:49', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291509836128257', '新版国家职业分类大典增158个新职业', '测试8', '新版国家职业分类大典增158个新职业', 'https://img1.baidu.com/it/u=2912093098,4200961725&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=304', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571873451057823746', 0, 1, 1, 1, 1, '1', 1, '2022-09-08 12:41:40', '2022-10-12 12:28:54', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291555285606402', '国家疾控局：集中或居家隔离时不得采取外锁门方式', '测试9', '国家疾控局：集中或居家隔离时不得采取外锁门方式', 'https://img1.baidu.com/it/u=2783971931,3890595846&fm=253&fmt=auto&app=138&f=JPEG?w=400&h=256', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1571873409936867330', 0, 0, 1, 1, 1, '1', 1, '2022-09-09 12:41:51', '2022-10-12 12:28:57', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291602899345410', '俄媒：佩斯科夫称，新领土入俄条约签署仪式30日举行，普京将出席', '测试10', '俄媒：佩斯科夫称，新领土入俄条约签署仪式30日举行，普京将出席', 'https://img0.baidu.com/it/u=928660066,3129818023&fm=253&fmt=auto&app=138&f=JPEG?w=749&h=500', '<h1 id=\"62rq9\"><p><span style=\"font-weight: normal;\">&nbsp; 从辽宁舰正式交付海军，到国产航母山东舰加入海军战斗序列，再到如今我国完全自主设计建造的福建舰，2012年至2022年，中国航母入列迎来十周年</span><br/></p><p>&nbsp; <span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">&nbsp; &nbsp;航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span></p><p><span style=\"font-weight: normal;\">航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。航空母舰，国之重器。从零到有、从近海走向远海，从“试验”到“正式”。通过时间轴，让我们一起见证人民海军航母战斗力建设的辉煌足迹。</span><br/></p></h1>', '1572979717222146049', 0, 1, 0, 1, 1, '1', 1, '2022-09-10 12:42:03', '2022-10-12 12:29:00', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573291652757037057', '关于web项目加载.dll文件的处理方法', '青云', '关于web项目加载.dll文件的处理方法', 'https://img2.baidu.com/it/u=2858478202,2033253264&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=398', '<h1 id=\"62rq9\"><p>找了很多资料，众说云云，但真正有用，能解决问题的，少之又少，遂写下此文。<br/><br/><br/><br/>1，创建一个类实现ServletContextListener 接口。<br/><br/>2，实现contextInitialized方法（该接口有两个方法，虽然我们只用其中一个，但是两下得都Override，不然报错）。<br/><br/>3，在项目的web.xml 文件中配置此监听类<br/><br/>&lt;listener&gt;<br/><br/>&lt;listener-class&gt;cn.zkun.listener.MyListener&lt;/listener-class&gt;<br/><br/>&lt;/listener&gt;<br/><br/><br/><br/>下面是我的代码：<br/><br/>package cn.zkun.listener;<br/><br/>import java.lang.reflect.Field;<br/><br/>import javax.servlet.ServletContextEvent;<br/><br/>import javax.servlet.ServletContextListener;<br/><br/>public class MyListener implements ServletContextListener {<br/><br/>@Override<br/><br/>public void contextDestroyed(ServletContextEvent arg0) {<br/><br/>}<br/><br/>//加载dll文件<br/><br/>@Override<br/><br/>public void contextInitialized(ServletContextEvent servletContextEvent) {<br/><br/>// 获取存放dll文件的绝对路径（假设将dll文件放在系统根目录下的WEB-INF文件夹中）<br/><br/>String path = servletContextEvent.getServletContext().getRealPath(<br/><br/>\"WEB-INF\");<br/><br/>// 将此目录添加到系统环境变量中<br/><br/>addDirToPath(path);<br/><br/>// 加载相应的dll文件，注意要将\'\\\'替换为\'/\'<br/><br/>System.out.println(path.replaceAll(\"\\\\\\\\\", \"/\") + \"/jsyunew6.dll\");<br/><br/>System.load(path.replaceAll(\"\\\\\\\\\", \"/\") + \"/jsyunew6.dll\");<br/><br/>}<br/><br/>//将dll文件所在的路径添加到系统环境java.library.path 中<br/><br/>private void addDirToPath(String s) {<br/><br/>try {<br/><br/>// 获取系统path变量对象<br/><br/>Field field = ClassLoader.class.getDeclaredField(\"sys_paths\");<br/><br/>// 设置此变量对象可访问<br/><br/>field.setAccessible(true);<br/><br/>// 获取此变量对象的值<br/><br/>String[] path = (String[]) field.get(null);<br/><br/>// 创建字符串数组，在原来的数组长度上增加一个，用于存放增加的目录<br/><br/>String[] tem = new String[path.length + 1];<br/><br/>// 将原来的path变量复制到tem中<br/><br/>System.arraycopy(path, 0, tem, 0, path.length);<br/><br/>// 将增加的目录存入新的变量数组中<br/><br/>tem[path.length] = s;<br/><br/>// 将增加目录后的数组赋给path变量对象<br/><br/>field.set(null, tem);<br/><br/>} catch (Exception e) {<br/><br/>e.printStackTrace();<br/><br/>}<br/><br/>}<br/><br/><br/><br/>}<br/></p></h1>', '1571873487476965377', 0, 1, 1, 1, 0, '1', 1, '2022-09-11 12:42:15', '2022-10-12 12:29:06', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573543346535354369', '关于JAVA WEB项目获得文件路径的处理', '青云', '关于JAVA WEB项目获得文件路径的处理', 'https://img0.baidu.com/it/u=2309321569,603981037&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=450', '<h1 id=\"62rq9\"><p><b>一、用servlet获取</b></p><p>1、获取项目的绝对路径</p><p>request.getSession().getServletContext().getRealPath(\"\")</p><p><br/></p><p>2、获取浏览器地址</p><p>request.getRequestURL()</p><p><br/></p><p>3、获取当前文件的绝对路径</p><p>request.getSession().getServletContext().getRealPath(request.getRequestURI())</p><p><br/></p><p>3个结果分别如下：</p><figure><p><img src=\"https://pic3.zhimg.com/80/v2-e8c934d0aac60f90154eb01ea5679e46_720w.webp\"/></p></figure><p><b>二、用Jsp获取</b></p><p>1、获取文件的绝对路径</p><p>&lt;body&gt;</p><p>&lt;%</p><p>String file = \"../WEB-INF/test.pfx\";</p><p>String path1 = application.getRealPath(file);</p><p>%&gt;</p><p>&lt;%=path1 %&gt;</p><p>&lt;/body&gt;</p><p>结果：（index.jsp放在WebContent下）</p><figure><p><img src=\"https://pic3.zhimg.com/80/v2-ca524af2817dfb1f4b6e7a05d79554f6_720w.webp\"/></p></figure><p>2、获取访问的servlet路径</p><p>String p2=request.getRequestURI();</p><p>结果：</p><figure><p><img src=\"https://pic1.zhimg.com/80/v2-676891a901af9ea7145148a16521d060_720w.webp\"/></p></figure><p>3、获取当前jsp页面的访问路径</p><p>String p3=request.getContextPath();<br/>结果：</p><figure><p><img src=\"https://pic4.zhimg.com/80/v2-9a4d19b957e1facf977e9120c9860e47_720w.webp\"/></p></figure><p><br/></p><p>4、获取当前页面的路径</p><p>String p4=request.getServletPath();<br/>结果：</p><figure><p><img src=\"https://pic1.zhimg.com/80/v2-dd121573c9fc2f0b001f062ecd440c90_720w.webp\"/></p></figure><p><br/></p><p><b>三、用Java类获取</b></p><p>1、获取Eclipse路径</p><p>String path=System.getProperty(\"user.dir\");</p><p>结果：</p><figure><p><img src=\"https://pic4.zhimg.com/80/v2-0dbd8a4ab9384a34668a17b0e79d535b_720w.webp\"/></p></figure><p><br/></p><p>2、获取当前的classpath路径</p><p>String path1=Test4.class.getResource(\"\").toString();</p><p>String path2=Test4.class.getResource(\"/\").toString();</p><p>String path3=Test4.class.getClassLoader().getResource(\"\").toString();</p><p>String path4=Thread.currentThread().getContextClassLoader().getResource(\"\").getPath();</p><p>打印出来分别是：</p><figure><p><img src=\"https://pic3.zhimg.com/80/v2-e994023ea10d9b787482de63efeb96f2_720w.webp\"/></p></figure><p><br/></p><p>3、获取文件的绝对路径<br/>如果要获取WebContent目录下的文件绝对路径怎么办？可以用下面的方法<br/>String t = Thread.currentThread().getContextClassLoader()</p><p>.getResource(\"\").getPath();</p><p>System.out.println(t);</p><p>int num = t.indexOf(\"build\");</p><p>System.out.println(num);</p><p>String path = t.substring(1, num).replace(\'/\', \'\\\\\')</p><p>+ \"WebContent\\\\WEB-INF\\\\文件\";</p><p>System.out.println(path);<br/>结果是：</p><figure><p><img src=\"https://pic1.zhimg.com/80/v2-8d68e78ac94deed3a461b48378624814_720w.webp\"/></p></figure></h1>', '1571873487476965377', 0, 1, 1, 0, 0, '2', 1, '2022-09-12 05:22:23', '2022-10-12 12:29:10', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573608291503374338', '关于spring在普通类中如何注入service问题的处理', '青云', '关于spring在普通类中如何注入service问题的处理', 'https://img0.baidu.com/it/u=384150371,4038533232&fm=253&fmt=auto&app=138&f=JPEG?w=966&h=500', '<h1 id=\"62rq9\"><p>该问题花了粑粑许多时间去研究，终于解决，希望对遇到类似的问题的朋友能够有所帮助。<br/><br/><br/><br/>1.编写一个类，以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext.（注意，有个注解@component,之前没有加，一直报错，后来反复实验，验证的）<br/><br/>代码：<br/><br/><br/><br/>package cn.zk.ukey.common.utils;<br/><br/><br/><br/>import org.slf4j.Logger;<br/><br/>import org.slf4j.LoggerFactory;<br/><br/>import org.springframework.beans.factory.DisposableBean;<br/><br/>import org.springframework.context.ApplicationContext;<br/><br/>import org.springframework.context.ApplicationContextAware;<br/><br/>import org.springframework.stereotype.Component;<br/><br/><br/><br/>/**<br/><br/>* 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext.<br/><br/>*<br/><br/>*/<br/><br/>@Component<br/><br/>public class SpringContextHolder implements ApplicationContextAware,<br/><br/>DisposableBean {<br/><br/><br/><br/>private static ApplicationContext applicationContext = null;<br/><br/><br/><br/>private final static Logger logger = LoggerFactory<br/><br/>.getLogger(SpringContextHolder.class);<br/><br/><br/><br/>/**<br/><br/>* 取得存储在静态变量中的ApplicationContext.<br/><br/>*/<br/><br/>public static ApplicationContext getApplicationContext() {<br/><br/>assertContextInjected();<br/><br/>return applicationContext;<br/><br/>}<br/><br/><br/><br/>/**<br/><br/>* 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型.<br/><br/>*/<br/><br/>public static &lt;T&gt; T getBean(String name) {<br/><br/>assertContextInjected();<br/><br/>return (T) applicationContext.getBean(name);<br/><br/>}<br/><br/><br/><br/>/**<br/><br/>* 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型.<br/><br/>*/<br/><br/>public static &lt;T&gt; T getBean(Class&lt;T&gt; requiredType) {<br/><br/>assertContextInjected();<br/><br/>return applicationContext.getBean(requiredType);<br/><br/>}<br/><br/><br/><br/>/**<br/><br/>* 清除SpringContextHolder中的ApplicationContext为Null.<br/><br/>*/<br/><br/>public static void clearHolder() {<br/><br/>logger.debug(\"清除SpringContextHolder中的ApplicationContext:\"<br/><br/>+ applicationContext);<br/><br/>applicationContext = null;<br/><br/>}<br/><br/><br/><br/>/**<br/><br/>* 实现ApplicationContextAware接口, 注入Context到静态变量中.<br/><br/>*/<br/><br/>public void setApplicationContext(ApplicationContext applicationContext) {<br/><br/>logger.debug(\"注入ApplicationContext到SpringContextHolder:{}\",<br/><br/>applicationContext);<br/><br/><br/><br/>if (SpringContextHolder.applicationContext != null) {<br/><br/>logger.warn(\"SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:\"<br/><br/>+ SpringContextHolder.applicationContext);<br/><br/>}<br/><br/><br/><br/>SpringContextHolder.applicationContext = applicationContext; // NOSONAR<br/><br/>}<br/><br/><br/><br/>/**<br/><br/>* 实现DisposableBean接口, 在Context关闭时清理静态变量.<br/><br/>*/<br/><br/>public void destroy() throws Exception {<br/><br/>SpringContextHolder.clearHolder();<br/><br/>}<br/><br/><br/><br/>/**<br/><br/>* 检查ApplicationContext不为空.<br/><br/>*/<br/><br/>private static void assertContextInjected() {<br/><br/>if (applicationContext == null) {<br/><br/>logger.warn(\"applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.\");<br/><br/>}<br/><br/>}<br/><br/>}<br/><br/><br/><br/><br/><br/>2.在普通类里面调用<br/><br/>通过 UkeyService ukeyService = SpringContextHolder.getBean(\"ukeyService\");<br/><br/><br/><br/>代码：<br/><br/><br/><br/>package cn.zk.ukey.common.utils;<br/><br/><br/><br/>import java.util.TimerTask;<br/><br/><br/><br/>import org.springframework.stereotype.Component;<br/><br/><br/><br/>import cn.zk.ukey.service.UkeyService;<br/><br/><br/><br/>@Component<br/><br/>public class TimerTaskUtil extends TimerTask {<br/><br/><br/><br/>UkeyService ukeyService = SpringContextHolder.getBean(\"ukeyService\");<br/><br/><br/><br/>@Override<br/><br/>public void run() {<br/><br/>com.softkey.jsyunew6 j9 = new com.softkey.jsyunew6();<br/><br/>String DevicePath;<br/><br/>String outstring;<br/><br/>// 这个用于判断系统中是否存在着加密锁。不需要是指定的加密锁,<br/><br/>DevicePath = j9.FindPort(0);<br/><br/>if (j9.get_LastError() != 0) {<br/><br/>System.out.println(\"未找到加密锁,请插入加密锁后，再进行操作。\");<br/><br/>System.out.println(\"xxxx:\" + ukeyService.findContentByUid(1));<br/><br/>ukeyService.update(0, 1);<br/><br/>} else {<br/><br/>System.out.println(\"找到加密锁\");<br/><br/>System.out.println(\"xxxx:\" + ukeyService.findContentByUid(1));<br/><br/><br/><br/>ukeyService.update(1, 1);<br/><br/>}<br/><br/><br/><br/>}<br/><br/><br/><br/>}<br/></p></h1>', '1571873487476965377', 0, 1, 1, 1, 0, '1', 1, '2022-09-13 09:40:27', '2022-10-12 12:29:13', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573828388058710017', '关于微信接入时内网穿透的处理', '青云', '关于微信接入时内网穿透的处理', 'https://img0.baidu.com/it/u=2250040126,1782367615&fm=253&fmt=auto&app=138&f=JPEG?w=573&h=322', '<p>刚开始做微信开发，遇到很多问题，其中一个较为头疼的就是内网穿透的问题。</p><p>接触过的人应该都知道，微信服务地址URL必须是外网，那么怎么样才做到这个URL能够访问自己在本地的服务器呢？</p><p><br/></p><figure><p><img src=\"https://pic4.zhimg.com/80/v2-c2bc414d6163abbbcc0e4ca8191f62b3_720w.webp\"/></p></figure><p>这个问题困扰了我很久，网上搜了很多，像nat123,natapp，，，，但是都出现了各种问题，使我不得不找新的方法，好在功夫不负苦心人，让我找到，下面给出 我的处理方法，希望后来的人少走弯路。</p><p>方法如下：</p><p>我使用的是一个叫“花生壳”的软件，来进行内网穿透。</p><figure><p><img src=\"https://pic2.zhimg.com/80/v2-c725fe050183ebe707da89741e1d7931_720w.webp\"/></p></figure><p>注册登录后：</p><figure><p><img src=\"https://pic2.zhimg.com/80/v2-57ecd9cbfd256c95b35705042fa2c47d_720w.webp\"/></p></figure><p>点击客户端域名列表，则跳转至花生壳管理域名列表页面，</p><p>可对帐号下的域名做开启或关闭花生壳服务以及域名诊断的操作。</p><figure><p><img src=\"https://pic2.zhimg.com/80/v2-54a94218617bf69cbed4f16a4577d599_720w.webp\"/></p></figure><p>点击客户端内网映射，则跳转至花生壳管理的内网映射页面，</p><p>可直接在网页中对域名进行添加映射，即使不在服务器现场，也可以远程管理。</p><p>下面介绍内网映射添加步骤：</p><p>①点击【<b>内网映射</b>】——【<b>添加映射</b>】</p><figure><p><img src=\"https://pic2.zhimg.com/80/v2-945ad7851f9386eb943e4774a90d473d_720w.webp\"/></p></figure><p><br/></p><p>在添加映射页面，填写好“应用名称”，“内网服务器IP”，“内网服务端口”以及选择“外网端口”形式，点击确定即可（需要映射网站80端口，选择网站80端口做映射即可）。</p><figure><p><img src=\"https://pic4.zhimg.com/80/v2-b115726d9026c100795e3932d09ea59b_720w.webp\"/></p></figure><p>添加成功后，会生成一个外网访问地址，在外网时使用外网访问地址访问。</p><figure><p><img src=\"https://pic1.zhimg.com/80/v2-6bc89e893142c7783726ce396ddcbe5c_720w.webp\"/></p></figure><p>需要帮助可以练习我Q603085899</p>', '1571873487476965377', 0, 1, 1, 1, 0, '1', 1, '2022-09-14 00:15:02', '2022-10-12 12:29:17', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575459021013069826', '关于java微信公众平台接收消息-文本消息的问题', '青云', '关于java微信公众平台接收消息-文本消息的问题', 'https://img0.baidu.com/it/u=1815117534,297262895&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500', '<p>package cn.zk.weixin.servlet;<br/><br/><br/><br/>import java.io.IOException;<br/><br/>import java.io.PrintWriter;<br/><br/>import java.util.Map;<br/><br/><br/><br/>import javax.servlet.ServletException;<br/><br/>import javax.servlet.http.HttpServlet;<br/><br/>import javax.servlet.http.HttpServletRequest;<br/><br/>import javax.servlet.http.HttpServletResponse;<br/><br/><br/><br/>import cn.zk.weixin.common.MessageUtils;<br/><br/>import cn.zk.weixin.common.ValidationTool;<br/><br/><br/><br/>public class WeChatServlet extends HttpServlet {<br/><br/>private static final long serialVersionUID = 1L;<br/><br/>protected void doGet(HttpServletRequest request,<br/><br/>HttpServletResponse response) throws ServletException, IOException {<br/><br/>// 获取签名<br/><br/>String signature = request.getParameter(\"signature\");<br/><br/>// 获取时间戳<br/><br/>String timestamp = request.getParameter(\"timestamp\");<br/><br/>// 获取随机数<br/><br/>String nonce = request.getParameter(\"nonce\");<br/><br/>// 获取随机字符串<br/><br/>String echostr = request.getParameter(\"echostr\");<br/><br/>System.out.println(\"==================================\");<br/><br/>System.out.println(\"加密签名字串:\" + signature);<br/><br/>System.out.println(\"时间戳:\" + timestamp);<br/><br/>System.out.println(\"随机数:\" + nonce);<br/><br/>System.out.println(\"随机字符串:\" + echostr);<br/><br/>System.out.println(\"==================================\");<br/><br/>PrintWriter out = null;<br/><br/>try {<br/><br/>out = response.getWriter();<br/><br/>// 校验签名signature<br/><br/>if (ValidationTool.checkSignature(signature, timestamp, nonce)) {<br/><br/>// 回写随机字符串<br/><br/>out.print(echostr);<br/><br/>System.out.println(\"接入成功！\");<br/><br/>} else {<br/><br/>System.out.println(\"接入失败！\");<br/><br/>}<br/><br/>} catch (IOException e) {<br/><br/>// TODO Auto-generated catch block<br/><br/>e.printStackTrace();<br/><br/>} finally {<br/><br/>// 关闭<br/><br/>out.close();<br/><br/>out = null;<br/><br/>}<br/><br/>}<br/><br/><br/><br/>protected void doPost(HttpServletRequest request,<br/><br/>HttpServletResponse response) throws ServletException, IOException {<br/><br/>System.out.println(\"微信服务器发来消息------------\");<br/><br/>// 将请求、响应的编码均设置为UTF-8（防止中文乱码）<br/><br/>request.setCharacterEncoding(\"UTF-8\");<br/><br/>response.setCharacterEncoding(\"UTF-8\");<br/><br/>String respMessage = null;<br/><br/>try {<br/><br/>// xml请求解析<br/><br/>Map&lt;String, String&gt; requestMap = MessageUtils.parseXml(request);<br/><br/>// 发送方帐号(open_id)<br/><br/>String fromUserName = requestMap.get(\"FromUserName\");<br/><br/>// 公众帐号<br/><br/>String toUserName = requestMap.get(\"ToUserName\");<br/><br/>// 消息类型<br/><br/>String msgType = requestMap.get(\"MsgType\");<br/><br/>// 消息创建时间<br/><br/>String createTime = requestMap.get(\"CreateTime\");<br/><br/>// 地理位置纬度<br/><br/>String location_X = requestMap.get(\"Location_X\");<br/><br/>// 地理位置经度<br/><br/>String location_Y = requestMap.get(\"Location_Y\");<br/><br/>// 微信服务器post过来的内容<br/><br/>String weixinContent = requestMap.get(\"Content\");<br/><br/>System.out.println(\"公众号用户发送过来的文本消息内容：\" + weixinContent);<br/><br/>System.out.println(\"msgType :\" + msgType);<br/><br/>if (\"text\".equals(msgType)) {<br/><br/><br/><br/>if (\"1\".equals(weixinContent)) {<br/><br/>respMessage = \"&lt;xml&gt;\" + \"&lt;ToUserName&gt;&lt;![CDATA[\"<br/><br/>+ fromUserName + \"]]&gt;&lt;/ToUserName&gt;\"<br/><br/>+ \"&lt;FromUserName&gt;&lt;![CDATA[\" + toUserName<br/><br/>+ \"]]&gt;&lt;/FromUserName&gt;\"<br/><br/>+ \"&lt;CreateTime&gt;12345678&lt;/CreateTime&gt;\"<br/><br/>+ \"&lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt;\"<br/><br/>+ \"&lt;Content&gt;&lt;![CDATA[我叫詹学伟，欢迎体验自动回复功能]]&gt;&lt;/Content&gt;\"<br/><br/>+ \"&lt;/xml&gt;\";<br/><br/>} else if (\"2\".equals(weixinContent)) {<br/><br/>respMessage = \"&lt;xml&gt;\" + \"&lt;ToUserName&gt;&lt;![CDATA[\"<br/><br/>+ fromUserName + \"]]&gt;&lt;/ToUserName&gt;\"<br/><br/>+ \"&lt;FromUserName&gt;&lt;![CDATA[\" + toUserName<br/><br/>+ \"]]&gt;&lt;/FromUserName&gt;\"<br/><br/>+ \"&lt;CreateTime&gt;12345678&lt;/CreateTime&gt;\"<br/><br/>+ \"&lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt;\"<br/><br/>+ \"&lt;Content&gt;&lt;![CDATA[我叫詹学伟，欢迎体验自动回复功能]]&gt;&lt;/Content&gt;\"<br/><br/>+ \"&lt;/xml&gt;\";<br/><br/>} else {<br/><br/>respMessage = \"&lt;xml&gt;\"<br/><br/>+ \"&lt;ToUserName&gt;&lt;![CDATA[\"<br/><br/>+ fromUserName<br/><br/>+ \"]]&gt;&lt;/ToUserName&gt;\"<br/><br/>+ \"&lt;FromUserName&gt;&lt;![CDATA[\"<br/><br/>+ toUserName<br/><br/>+ \"]]&gt;&lt;/FromUserName&gt;\"<br/><br/>+ \"&lt;CreateTime&gt;12345678&lt;/CreateTime&gt;\"<br/><br/>+ \"&lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt;\"<br/><br/>+ \"&lt;Content&gt;&lt;![CDATA[更多功能待完善,请先回复1,2]]&gt;&lt;/Content&gt;\"<br/><br/>+ \"&lt;/xml&gt;\";<br/><br/>}<br/><br/>}<br/><br/><br/><br/>// 响应回复消息<br/><br/>PrintWriter out = response.getWriter();<br/><br/>out.print(respMessage);<br/><br/>out.close();<br/><br/><br/><br/>} catch (Exception e) {<br/><br/>e.printStackTrace();<br/><br/>}<br/><br/>}<br/><br/><br/><br/>}<br/><br/>======================================================================<br/><br/>package cn.zk.weixin.common;<br/><br/><br/><br/>import java.io.InputStream;<br/><br/>import java.util.HashMap;<br/><br/>import java.util.List;<br/><br/>import java.util.Map;<br/><br/><br/><br/>import javax.servlet.http.HttpServletRequest;<br/><br/><br/><br/>import org.dom4j.Document;<br/><br/>import org.dom4j.Element;<br/><br/>import org.dom4j.io.SAXReader;<br/><br/><br/><br/>public class MessageUtils {<br/><br/><br/><br/>/**<br/><br/>* 解析微信发来的请求（XML）<br/><br/>*<br/><br/>* @param request<br/><br/>* @return<br/><br/>* @throws Exception<br/><br/>*/<br/><br/>@SuppressWarnings(\"unchecked\")<br/><br/>public static Map&lt;String, String&gt; parseXml(HttpServletRequest request)<br/><br/>throws Exception {<br/><br/>// 将解析结果存储在HashMap中<br/><br/>Map&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();<br/><br/>// 从request中取得输入流<br/><br/>InputStream inputStream = request.getInputStream();<br/><br/><br/><br/>// 读取输入流<br/><br/>SAXReader reader = new SAXReader();<br/><br/>Document document = reader.read(inputStream);<br/><br/>// 得到xml根元素<br/><br/>Element root = document.getRootElement();<br/><br/>// 得到根元素的所有子节点<br/><br/>List&lt;Element&gt; elementList = root.elements();<br/><br/>// 遍历所有子节点<br/><br/>for (Element e : elementList) {<br/><br/>map.put(e.getName(), e.getText());<br/><br/>}<br/><br/>// 释放资源<br/><br/>inputStream.close();<br/><br/>inputStream = null;<br/><br/>return map;<br/><br/>}<br/><br/>}<br/></p>', '1571873487476965377', 2, 1, 1, 1, 1, '1', 3, '2022-09-15 12:14:35', '2022-10-12 12:29:21', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575459824608161794', '面对人工智能热潮，我们该做些什么？', '青云', '面对人工智能热潮，我们该做些什么？', 'https://img1.baidu.com/it/u=3589285624,2572184837&fm=253&fmt=auto&app=138&f=JPEG?w=750&h=500', '作者：微软亚洲研究院<br/><br/>链接：<a href=\"https://www.zhihu.com/question/46563853/answer/153380355\" target=\"_blank\">https://www.zhihu.com/question/46563853/answer/153380355</a><br/><br/>来源：知乎<br/><br/>著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。<br/><br/><br/><br/>我们的主题是开启智能计算的研究之门，我想从一个研究者的角度跟大家讨论一下我们还能做些什么，甚至是更有意义的是去做些什么。人工智能表面看起来很火，其实如果把这张魔术的台布展开，你就会发现它千疮百孔，各种各样非常基础的问题其实并没有解决，甚至有很多哲学的方法论的东西从我们的角度来看可能也不准确。<br/><br/>面对这样的情况，更有意义的事情可能是冷静下来，去从事一些能够改变人工智能现状以及未来的很本质的基础研究工作，甚至是去反思人工智能发展的路线图，看看我们是不是应该重启一条道路。这些事情才能使得我们不仅仅是随波逐流，不仅仅是变点现，骗点钱，而是在人工智能发展的真正道路上留下我们自己的足迹，过了几十年当大家回忆的时候，另外一个人站在台上讲述人工智能一百年的时候，他会在那个图上标着一个星星，那里面讲的是你的故事。<br/><br/>前面这些人工智能现象的背后是什么？说到技术层面，现在最火的两个词，一个叫Deep Learning（深度学习），一个叫Reinforcement Learning（增强学习）。深度学习是什么？通俗地讲，它就是一个端到端的学习，我们不需要一些feature engineering，而是用一个非常复杂的、容量很大的模型去直接拟合输入输出，让模型自己探索有意义的中间表达。<br/><br/>什么是增强学习？通俗地讲，就是学习机器不断地跟环境做自主的互动，在互动的过程中用长远的收益来指导当下该做什么决策，通过不断的跟环境互动去调整决策的最优性。', '1571873409936867330', 1, 1, 1, 1, 1, '1', 2, '2022-09-16 12:17:47', '2022-10-12 12:29:26', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575460227668193282', 'nginx+tomcat负载均衡', '青云', 'nginx+tomcat负载均衡', 'https://img1.baidu.com/it/u=1781041912,3563357182&fm=253&fmt=auto&app=138&f=JPEG?w=713&h=500', '1.三台虚拟机IP：<br/><br/>192.168.139.103<br/><br/>192.168.139.104<br/><br/>192.168.139.105<br/><br/><br/><br/>2.三台虚拟机都安装tomcat<br/><br/>并设置访问端口prot分别为：<br/><br/>38080<br/><br/>48080<br/><br/>58080<br/><br/>3.修改tomcat<br/>目录下 webapps/ROOT/index.jsp<br/><br/><br/><br/>4.下载安装nginx<br/>配置：<br/><br/>#服务器的集群<br/><br/>upstream <a href=\"http://manage.taotao.com\" target=\"_blank\">http://manage.taotao.com/</a> { #服务器集群名字<br/><br/>server 192.168.139.103:38080 weight=1;<br/><br/>#服务器配置 weight是权重的意思，权重越大，分配的概率越大。<br/><br/>server 192.168.139.104:48080 weight=2;<br/><br/>server 192.168.139.105:58080 weight=9;<br/><br/>}<br/><br/><br/><br/>server<br/>{<br/><br/>listen 80;<br/><br/>server_name localhost;<br/><br/><br/><br/>#charset koi8-r;<br/><br/><br/><br/>#access_log logs/host.access.log main;<br/><br/><br/><br/>proxy_set_header X-Forwarded-Host $host;<br/><br/>proxy_set_header X-Forwarded-Server<br/>$host;<br/><br/>proxy_set_header X-Forwarded-For<br/>$proxy_add_x_forwarded_for;<br/><br/><br/><br/>location / {<br/><br/>proxy_pass <a href=\"http://manage.taotao.com;\" target=\"_blank\">http://manage.taotao.com%3B/</a><br/><br/>proxy_connect_timeout 600;<br/><br/>proxy_read_timeout 600;<br/><br/>}<br/><br/><br/><br/>}<br/><br/>5.浏览器http://localhost:80访问', '1571873409936867330', 0, 1, 1, 1, 1, '1', 1, '2022-09-17 12:19:23', '2022-10-12 12:29:31', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575460644858834946', '关于linux 远程免密码登录在处理', '青云', '关于linux 远程免密码登录在处理', 'https://img2.baidu.com/it/u=3982264550,2222183412&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=337', '<p>初涉hadoop,在部署伪分布式模式的时候，让各个节点之间远程免密码登录。</p><p><br/></p><p>首先讲下，ssh登录：</p><p>比如说A节点 要登录到B 节点，我们只需将B的公钥放到A上，A在登录B的时候，会根据B的公钥加密登录用户和密码，B节点然后使用自己的私钥将加密的信息解密，与自己的用户名和密码比对，相同则通过。</p><p>============================================================</p><p>192.168.139.11 node1(nameNode)</p><p>192.168.139.22 node2(slaver2)</p><p>192.168.139.33 node3(slaver3)</p><p>192.168.139.44 node4(slaver4)</p><p><br/></p><p>1.确认系统已经安装了SSH。</p><p><b>rpm –qa | grep ssh</b></p><figure><p><img src=\"https://pic4.zhimg.com/80/v2-91165aa88e2f04605390228d77f514eb_720w.webp\"/></p></figure><p>假设没有安装ssh，可以通过下面命令进行安装。</p><p><b>yum install ssh</b>&nbsp;--&gt;安装SSH协议</p><p><b>service sshd restart</b>&nbsp;--&gt;启动服务</p><p><br/></p><p>2.生成秘钥对</p><p><b>ssh-keygen –t rsa&nbsp;</b>--&gt;直接回车生成的密钥对：id_rsa和id_rsa.pub，默认存储在\"/root/.ssh\"目录下。(我的全用的是root用户)</p><p>cp ./id_rsa.pub authorized_keys</p><p><br/></p><p>3.生成密钥对后，每个节点都有自己的私钥和公钥，</p><p>要实现远程免密码登录，我样只需将每个datanode的公钥追加到NameNode节点的公钥里</p>', '1571873409936867330', 0, 1, 1, 1, 1, '1', 1, '2022-09-18 12:21:03', '2022-10-12 12:29:35', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575460858722201601', 'Hadoop2.7.2 HA搭建', '青云', 'Hadoop2.7.2 HA搭建', 'https://img0.baidu.com/it/u=3815770327,2197194900&fm=253&fmt=auto&app=138&f=JPEG?w=513&h=355', ' 准备：安装好jdk，zookeeper集群，时间同步，ssh免密码登陆<br/><br/>配置文件修改<br/><br/>1.hadoop-env.sh<br/> 补充java_home的环境变量<br/><br/> <br/><br/>export JAVA_HOME=/usr/local/jdk1.8.0_201<br/> <br/><br/>2. core-site.xml<br/> <br/><br/>复制代码<br/>&lt;configuration&gt;<br/><br/>        &lt;!-- 指定hdfs的nameservice为ns1 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;fs.defaultFS&lt;/name&gt;<br/><br/>                &lt;value&gt;hdfs://ns1/&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 指定hadoop临时目录 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;hadoop.tmp.dir&lt;/name&gt;<br/><br/>                &lt;value&gt;/usr/local/hadoop-2.7.2/tmp&lt;/value&gt;<br/><br/>        &lt;/property&gt; <br/><br/>        &lt;!-- 指定zookeeper地址 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;ha.zookeeper.quorum&lt;/name&gt;<br/><br/>                &lt;value&gt;node10:2181,node11:2181,node12:2181&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>&lt;/configuration&gt;<br/>复制代码<br/> <br/><br/> <br/><br/> <br/><br/> <br/><br/>3.hdfs-site.xml<br/>复制代码<br/>&lt;configuration&gt;<br/><br/>        &lt;!--指定hdfs的nameservice为ns1，需要和core-site.xml中的保持一致 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.nameservices&lt;/name&gt;<br/><br/>                &lt;value&gt;ns1&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- ns1下面有两个NameNode，分别是nn1，nn2 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.ha.namenodes.ns1&lt;/name&gt;<br/><br/>                &lt;value&gt;nn1,nn2&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- nn1的RPC通信地址 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.namenode.rpc-address.ns1.nn1&lt;/name&gt;<br/><br/>                &lt;value&gt;node6:9000&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- nn1的http通信地址 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.namenode.http-address.ns1.nn1&lt;/name&gt;<br/><br/>                &lt;value&gt;node6:50070&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- nn2的RPC通信地址 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.namenode.rpc-address.ns1.nn2&lt;/name&gt;<br/><br/>                &lt;value&gt;node7:9000&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>       &lt;!-- nn2的http通信地址 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.namenode.http-address.ns1.nn2&lt;/name&gt;<br/><br/>                &lt;value&gt;node7:50070&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 指定NameNode的元数据在JournalNode上的存放位置 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.namenode.shared.edits.dir&lt;/name&gt;<br/><br/>                &lt;value&gt;qjournal://node10:8485;node11:8485;node12:8485/ns1&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 指定JournalNode在本地磁盘存放数据的位置 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.journalnode.edits.dir&lt;/name&gt;<br/><br/>                &lt;value&gt;/usr/local/hadoop-2.7.2/journaldata&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 开启NameNode失败自动切换 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.ha.automatic-failover.enabled&lt;/name&gt;<br/><br/>                &lt;value&gt;true&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 配置失败自动切换实现方式 --&gt;<br/><br/>        &lt;property&gt;                     <br/><br/>                &lt;name&gt;dfs.client.failover.proxy.provider.ns1&lt;/name&gt;                     <br/><br/>                &lt;value&gt;org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>       &lt;!-- 配置隔离机制方法，多个机制用换行分割，即每个机制暂用一行--&gt;<br/><br/>        &lt;property&gt;<br/><br/>            &lt;name&gt;dfs.ha.fencing.methods&lt;/name&gt;<br/><br/>&lt;value&gt;sshfence<br/><br/>shell(/bin/true)&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 使用sshfence隔离机制时需要ssh免登陆 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.ha.fencing.ssh.private-key-files&lt;/name&gt;<br/><br/>                &lt;value&gt;/root/.ssh/id_rsa&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 配置sshfence隔离机制超时时间 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;dfs.ha.fencing.ssh.connect-timeout&lt;/name&gt;<br/><br/>                &lt;value&gt;30000&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>&lt;/configuration&gt;<br/>复制代码<br/> <br/><br/> <br/><br/>3. mapred-site.xml<br/> <br/><br/>复制代码<br/>&lt;configuration&gt;<br/><br/>        &lt;!-- 指定mr框架为yarn方式 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;mapreduce.framework.name&lt;/name&gt;<br/><br/>                &lt;value&gt;yarn&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>&lt;/configuration&gt; <br/>复制代码<br/> <br/><br/> <br/><br/>4. yarn-site.xml<br/> <br/><br/>复制代码<br/>&lt;configuration&gt;<br/><br/>        &lt;!-- 开启RM高可用 --&gt;<br/><br/>        &lt;property&gt;                     <br/><br/>                &lt;name&gt;yarn.resourcemanager.ha.enabled&lt;/name&gt;<br/><br/>                &lt;value&gt;true&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 指定RM的cluster id --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;yarn.resourcemanager.cluster-id&lt;/name&gt;<br/><br/>                &lt;value&gt;yrc&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 指定RM的名字 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;yarn.resourcemanager.ha.rm-ids&lt;/name&gt;<br/><br/>                &lt;value&gt;rm1,rm2&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 分别指定RM的地址 --&gt;<br/><br/>        &lt;property&gt;                         <br/><br/>                &lt;name&gt;yarn.resourcemanager.hostname.rm1&lt;/name&gt;<br/><br/>                &lt;value&gt;node8&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;property&gt;                     <br/><br/>                &lt;name&gt;yarn.resourcemanager.hostname.rm2&lt;/name&gt;<br/><br/>                &lt;value&gt;node9&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;!-- 指定zk集群地址 --&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;yarn.resourcemanager.zk-address&lt;/name&gt;                           <br/><br/>                &lt;value&gt;node10:2181,node11:2181,node12:2181&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>        &lt;property&gt;<br/><br/>                &lt;name&gt;yarn.nodemanager.aux-services&lt;/name&gt;<br/><br/>                &lt;value&gt;mapreduce_shuffle&lt;/value&gt;<br/><br/>        &lt;/property&gt;<br/><br/>&lt;/configuration&gt;<br/>复制代码<br/> <br/><br/> <br/><br/> <br/><br/>5. Slaves<br/> <br/><br/>Node10<br/><br/>Node11<br/><br/>node12<br/> <br/><br/> <br/><br/>启动<br/><br/>启动zookeeper集群(分别node10,node11,node12)<br/> <br/><br/>zkServer.sh start<br/> <br/><br/> <br/><br/>zkServer.sh status<br/> <br/><br/> <br/><br/>zookeeper正常启动会有一个leader，其他均为follower<br/><br/>启动三个journalnode（分别在node10,node11,node12）<br/> <br/><br/>hadoop-daemon.sh start journalnode<br/> <br/><br/>通过jps命令可以查看：<br/><br/>在node6上执行format命令<br/>hdfs namenode -format<br/> <br/><br/>将生产的tmp.dir文件分发<br/>格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件<br/><br/> <br/><br/>这个文件默认是在linux的临时目录，如果在临时目录，会被自动删除，所以需要自定义，本次自定义在/usr/local/hadoop-2.7.2/tmp这个目录<br/><br/>然后将该文件分发到每个节点的相同目录，<br/><br/>scp -r /usr/local/hadoop-2.7.2/tmp root@node7:/usr/local/hadoop-2.7.2/<br/> <br/><br/>下面一次分发到其他节点<br/><br/>说明：也可以这样，建议<br/><br/>hdfs namenode -bootstrapStandby<br/> <br/><br/> <br/><br/> <br/><br/>格式化ZKFC（在node6上执行即可）<br/>hdfs zkfc -formatZK<br/> <br/><br/>启动HDFS（在node6上执行）<br/>start-dfs.sh<br/> <br/><br/>启动YARN<br/>是在node8上执行start-yarn.sh，把namenode和resourcemanager分开是因为性能问题，因为他们都要占用大量资源，所以把他们分开了，他们分开了就要分别在不同的机器上启动<br/><br/>start-yarn.sh<br/><br/>在浏览器中查看nanenode<br/><a href=\"http://192.168.31.107:50070/dfshealth.html#tab-overview\" target=\"_blank\">http://192.168.31.107:50070/dfshealth.html#tab-overview</a><br/> <br/><br/> <br/><br/><a href=\"http://192.168.31.106:50070/dfshealth.html#tab-overview\" target=\"_blank\">http://192.168.31.106:50070/dfshealth.html#tab-overview</a><br/><a href=\"http://192.168.31.106:50070/dfshealth.html#tab-overview\" target=\"_blank\">http://192.168.31.106:50070/dfshealth.html#tab-overview</a><br/> <br/><br/> <br/><br/>http://node8:8088/cluster', '1571873487476965377', 0, 1, 1, 1, 1, '1', 1, '2022-09-19 12:21:54', '2022-10-12 12:29:40', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575461933923643393', 'zabbix离线安装', '青云', 'zabbix离线安装', 'https://img0.baidu.com/it/u=1301295492,180887173&fm=253&fmt=auto&app=138&f=JPEG?w=789&h=500', '<p>LAMP环境<br/><br/>1.apache安装<br/><br/>#安装包(yum install --downloadonly --downloaddir=/opt/apache httpd httpd-devel)<br/><br/> <br/><br/> <br/><br/> <br/><br/>1.1拷贝安装包到本地<br/> <br/><br/>1.2进入到安装包目录<br/>[root@node12 apache]# cd /opt/apache/<br/><br/> <br/><br/>1.3执行安装<br/>[root@node12 apache]# rpm -ivh ./*.rpm --nodeps --force<br/><br/> <br/><br/>1.4启动服务<br/>systemctl start  httpd<br/><br/> <br/><br/>1.5开启自启<br/>systemctl enable  httpd<br/><br/> <br/><br/>1.6关闭防火墙<br/>systemctl stop firewalld<br/><br/> <br/><br/>1.7浏览器测试结果<br/><br/><br/> <br/><br/> <br/><br/> 2.安装mysql数据库<br/>【安装包来源】<br/><br/>wget <a href=\"http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm\" target=\"_blank\">http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm</a><br/><br/>rpm -ivh mysql-community-release-el7-5.noarch.rpm<br/>yum install --downloadonly --downloaddir=/opt/mysql mysql-server<br/><br/>安装包<br/><br/> <br/><br/> <br/><br/>2.1执行安装<br/>[root@node12 mysql]# rpm -ivh ./*.rpm --nodeps --force<br/><br/> <br/><br/>2.2修改密码<br/>无密码登录：mysql -u root<br/>由于权限问题可能会报错：ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)<br/><br/>更改权限：chown root /var/lib/mysql/<br/>然后，重启服务：systemctl restart mysqld<br/>在登录msyql： mysql -u root<br/>修改密码：<br/>mysql &gt; use mysql;<br/>mysql &gt; update user set password=password(\'123456\') where user=\'root\';<br/>mysql &gt; exit;<br/>重启mysql服务:<br/>systemctl restart mysqld<br/><br/> <br/><br/>2.3建库并授权<br/>在MySQL上安装zabbix数据库和用户，授权远程登录<br/># mysql -uroot -p123456<br/>mysql&gt; create database zabbix character set utf8 collate utf8_bin;<br/><br/>mysql&gt; grant all privileges on *.* to root@localhost identified by \'123456\';<br/><br/>mysql&gt; grant all privileges on zabbix.* to zabbix@localhost identified by \'zabbix\';<br/><br/>mysql&gt; grant all privileges on zabbix.* to zabbix@\'%\' identified by \'zabbix\';<br/><br/>mysql&gt; quit;<br/><br/> <br/><br/>3安装php<br/>【安装包来源】<br/><br/>yum install --downloadonly --downloaddir=/opt/php php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash<br/><br/>安装包<br/><br/><br/><br/> <br/><br/>3.1执行安装<br/>[root@node12 php]# rpm -ivh ./*.rpm --nodeps --force<br/><br/> <br/><br/>3.2测试PHP<br/>cd  /var/www/html/<br/><br/> <br/><br/>vi info.php<br/><br/>加入：<br/><br/>&lt;?php<br/><br/>        phpinfo();<br/><br/>?&gt;<br/><br/> <br/><br/>systemctl restart httpd<br/><br/> <br/><br/>3.3浏览器访问<br/>192.168.100.12/info.php<br/><br/><br/><br/> <br/><br/> <br/><br/> <br/><br/>4.安装zabbix<br/>【依赖包来源】<br/><br/>yum install --downloadonly --downloaddir=/opt/zabbix net-snmp-devel libxml2-devel  libevent libevent-devel curl-devel mysql-devel <br/><br/>依赖包,注意其中有一个是zabbix的源码包<br/><br/> <br/><br/> <br/><br/>4.1安装依赖<br/>[root@node12 zabbix]# rpm -ivh ./*.rpm --nodeps --force<br/><br/> <br/><br/>4.2解压zabbix<br/>[root@node12 zabbix]# tar -zvxf zabbix-3.4.15.tar.gz -C /opt/install/<br/><br/> <br/><br/>4.3进入解压目录<br/>[root@node12 zabbix]# cd /opt/install/zabbix-3.4.15/<br/><br/> <br/><br/>4.4编译<br/>./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql  --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2<br/><br/>注意：此时编译会出错，因为没有编译环境，所以编译之前先安装编译环境<br/><br/> <br/><br/>编译环境包<br/><br/> <br/><br/> <br/><br/>4.5安装编译环境包<br/>[root@node12 gcc]# rpm -ivh ./*.rpm --nodeps --force<br/><br/> <br/><br/>4.6再次编译<br/>./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql  --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2<br/><br/>4.7安装<br/>make &amp;&amp; make install<br/><br/> <br/><br/>4.8创建用户和用户组：<br/>groupadd zabbix<br/><br/>useradd -g zabbix zabbix<br/><br/> <br/><br/>4.9导入数据到数据库<br/>cd zabbix-3.4.15/database/mysql/<br/><br/> <br/><br/>mysql -uzabbix -pzabbix  zabbix &lt; schema.sql<br/><br/>mysql -uzabbix -pzabbix  zabbix &lt; images.sql<br/><br/>mysql -uzabbix -pzabbix  zabbix &lt; data.sql<br/><br/> <br/><br/>进入mysql，查看zabbix的表导入进去没<br/><br/>use zabbix;<br/><br/>how tables;<br/><br/> <br/><br/>4.10创建日志目录:<br/>cd /usr/local/zabbix<br/><br/>mkdir logs<br/><br/>chown zabbix:zabbix logs<br/><br/> <br/><br/>4.11修改zabbix_server.conf<br/>vi /usr/local/zabbix/etc/zabbix_server.conf<br/><br/>修改日志的路径<br/>LogFile=/usr/local/zabbix/logs/zabbix_server.log<br/><br/> <br/><br/>修改DB参数<br/>DBName=zabbix<br/><br/>DBUser=zabbix<br/><br/>DBPassword=zabbix<br/><br/>4.12 修改zabbix_agent.conf<br/>vi /usr/local/zabbix/etc/zabbix_agentd.conf<br/><br/>Server=127.0.0.1<br/><br/>ServerActive=127.0.0.1 (指向zabbix-server的主机)<br/><br/>Hostname=xx  （本地主机名）<br/><br/> <br/><br/>4.13 zabbix服务启动脚本<br/>cd /opt/install/zabbix-3.4.15/<br/><br/>cp misc/init.d/fedora/core/zabbix_*  /etc/init.d/<br/><br/>将启动脚本的路径修改为自己安装的位置：<br/><br/>修改服务器端启动文件<br/><br/># vi /etc/init.d/zabbix_server<br/><br/>将BASEDIR=/usr/local/替换为BASEDIR=/usr/local/zabbix（以之前编译的位置为准)<br/><br/>修改客户器端启动文件：<br/><br/># vi /etc/init.d/zabbix_agentd<br/><br/>将BASEDIR=/usr/local/替换为BASEDIR=/usr/local/zabbix（以之前编译的位置为准)<br/><br/> <br/><br/>4.14 启动zabbix_server 和 zabiix_agent服务（测试是否有效）<br/># /usr/local/zabbix/sbin/zabbix_server<br/><br/># /usr/local/zabbix/sbin/zabbix_agentd<br/><br/>设置zabbix server 和zabbix agentd开机自动启动<br/><br/>chkconfig --add zabbix_server<br/><br/>chkconfig --add zabbix_agentd<br/><br/>chkconfig  zabbix_server on<br/><br/>chkconfig  zabbix_agentd on<br/><br/> <br/><br/>/etc/init.d/zabbix_server restart<br/><br/>/etc/init.d/zabbix_agentd restart<br/><br/> <br/><br/>4.15前端Web配置<br/>mkdir /var/www/html/zabbix/<br/><br/>cd /opt/install/zabbix-3.4.15/<br/><br/>cp -a ./frontends/php/*  /var/www/html/zabbix<br/><br/>chown -R zabbix.zabbix  /var/www/html/zabbix/<br/><br/>systemctl restart httpd<br/><br/> <br/><br/>4.16访问<br/><br/> <br/><br/> <br/><br/>4.17解决红色Fail<br/>vi /etc/php.ini<br/><br/>post_max_size = 8M--&gt;16M<br/><br/>max_execution_time = 30--&gt;300<br/><br/>max_input_time = 60--&gt;300<br/><br/>#在配置文件878行添加亚洲时区<br/><br/>date.timezone = Asia/Shanghai<br/><br/>systemctl restart httpd<br/><br/> <br/><br/>4.18 Zabbix配置<br/>可以看到显示的ok信息<br/><br/><br/> <br/><br/>继续下一步<br/>配置信息<br/>选则MySQL和端口，配置zabbix数据库信息<br/><br/><br/><br/> <br/><br/>然后就下一步就好了。<br/><br/>最后会显示如下信息，无法安装配置文件，按照提示下载文件然后上传到提示目录下即可。<br/><br/><br/><br/> <br/><br/>下载文件（zabbix.conf.php）上传到指定文件目录<br/>解决乱码<br/>cd  /var/www/html/zabbix/fonts<br/><br/>上传字体文件到这个文件夹<br/><br/>(在本地/opt/data)<br/></p>', '1571873409936867330', 4, 1, 1, 1, 1, '1', 5, '2022-09-20 12:26:10', '2022-10-12 12:29:44', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575462396303716353', 'ntp多台主机时间同步', '青云', 'ntp多台主机时间同步', 'https://img2.baidu.com/it/u=3776615478,3243060190&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=243', '<p>通俗的讲，多台主机ntp时间同步，就是自定义集群中一台机器（我们这里叫它server）与网络时间同步，然后其它主机与server主机时间同步</p><p>另外，ntp时间同步机制不是我们想象的那样直接同步，而是“逐渐”同步。这样的好处是，在某些情况下，比如两台主机时间不同步，而且两台主机上面都有定时任务，如果其中有一台是正常的，另外一台机器时间“快”一些，而在“快”的这段时间里，可能会已经触发某些定时任务，当时间同步后，这就意味着，这些定时任务将会再次被执行，这样肯定是不妥的。因此，npt同步机制通过“逐渐”同步的方法解决了这个问题。</p><p>npt时间同步只需修改一下对应主机的配置文件：</p><p>比如两台主机</p><p>node1　　192.168.100.101</p><p>node2　　192.168.100102　　</p><p>首先安装npt</p><p>yum -y install npt</p><p>&nbsp;</p><p>在server主机上修改配置文件配置，只需添加一行，其它都不用修改</p><p>配置文件的位置：/etc/ntp.conf</p><p>vim /etc/ntp.conf</p><p>restrict 192.168.0.0 mask 255.255.255.0&nbsp; &nbsp;#添加此行</p><p><img src=\"https://img2018.cnblogs.com/blog/1571787/201812/1571787-20181229130000471-32335102.png\" alt=\"\"/></p><p><a href=\"https://img2018.cnblogs.com/blog/1571787/201812/1571787-20181229130000471-32335102.png\" target=\"_blank\">https://img2018.cnblogs.com/blog/1571787/201812/1571787-20181229130000471-32335102.png</a><br/></p><p>在其它主机上同步的配置修改,注释几行，然后添加一行</p><p>vim /etc/ntp.conf</p><p>server 192.168.100.102</p><p>&nbsp;<a href=\"https://img2018.cnblogs.com/blog/1571787/201812/1571787-20181229130154711-1764759820.png\" target=\"_blank\">https://img2018.cnblogs.com/blog/1571787/201812/1571787-20181229130154711-1764759820.png</a><img src=\"https://img2018.cnblogs.com/blog/1571787/201812/1571787-20181229130154711-1764759820.png\" alt=\"\"/></p><p>&nbsp;</p><p>然后在server和其它主机上重启ntp服务:</p><p>systemctl start ntpd&nbsp; &nbsp; &nbsp; 没有启动的时候就直接启动&nbsp; &nbsp;</p><p>systemctl restart ntpd　　　已经启动就重以</p><p>&nbsp;</p><p>centos6.x 上面命令不一样：</p><p>service ntpd start</p><p>service ntpd restart</p><p>&nbsp;</p><p>然后在各个主机上可以查看同步情况：</p><p>ntpstat</p><p>&nbsp;</p><p>大约15分分钟后就能好了</p>', '1571873409936867330', 5, 1, 1, 1, 1, '1', 6, '2022-09-21 12:28:00', '2022-10-12 12:29:48', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575462783668662274', 'CentOS7下docker安装', '青云', 'CentOS7下docker安装', 'https://img1.baidu.com/it/u=2882792282,4110067863&fm=253&fmt=auto&app=138&f=JPEG?w=998&h=500', 'Docker安装<br/> <br/><br/>Docker 要求 CentOS7 系统的内核版本在 3.10以上 ，查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。<br/><br/>1、通过 uname -r 命令查看你当前的内核版本<br/><br/>uname -r<br/><br/>2、 使用 root 权限登录 Centos。确保 yum 包更新到最新。<br/><br/>yum -y update<br/><br/> <br/><br/>该过程大概需要维持10分钟左右<br/><br/>3、 卸载旧版本(如果安装过旧版本的话)<br/><br/>yum remove docker docker-common docker-selinux docker-engine<br/><br/> <br/><br/>4、 安装需要的软件包， yum-util 提供yum-config-manager功能，另外两个是devicemapper驱动依赖的<br/><br/>yum install -y yum-utils device-mapper-persistent-data lvm2<br/><br/> <br/><br/>5、 设置yum源<br/><br/>yum-config-manager --add-repo <a href=\"https://download.docker.com/linux/centos/docker-ce.repo\" target=\"_blank\">https://download.docker.com/linux/centos/docker-ce.repo</a><br/><br/> <br/><br/>6、 可以查看所有仓库中所有docker版本，并选择特定版本安装<br/><br/>yum list docker-ce --showduplicates | sort -r<br/><br/>7、 安装docker<br/><br/>sudo yum install -y docker-ce    <br/><br/> #由于repo中默认只开启stable仓库，故这里安装的是最新稳定版18.03.1<br/><br/> <br/><br/>8、 启动并加入开机启动<br/><br/>systemctl start docker<br/><br/>systemctl enable docker<br/><br/>9、 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)<br/><br/>docker version<br/><br/>', '1572979717222146049', 7, 1, 1, 1, 1, '1', 8, '2022-09-22 12:29:32', '2022-10-12 12:29:52', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575463590916993025', 'Docker安装minio单机', '青云', 'Docker安装minio单机', 'https://img0.baidu.com/it/u=2854942090,3885026103&fm=253&fmt=auto&app=138&f=JPEG?w=676&h=449', '<p>拉去镜像<br/>docker pull minio/minio<br/><br/>创建文件，映射到docker容器<br/>mkdir -p {/opt/minio/config,/opt/minio/data}<br/><br/>启动容器<br/>docker run -it -p 9000:9000 -p 9001:9001 --name minio -d --restart=unless-stopped -e \"MINIO_ACCESS_KEY=minio\" -e \"MINIO_SECRET_KEY=minio123456\" -v /opt/minio/data:/data -v /opt/minio/config:/root/.minio minio/minio:latest server /data --console-address \"0.0.0.0:9001\" --address \"0.0.0.0:9000\"<br/></p>', '1572979717222146049', 0, 1, 1, 1, 1, '1', 1, '2022-09-23 12:32:45', '2022-10-12 12:29:56', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575463789882191874', 'Portainer Doker容器管理工具（超赞）', '青云', 'Portainer Doker容器管理工具', 'https://img2.baidu.com/it/u=1390828182,946431146&fm=253&fmt=auto&app=138&f=JPG?w=500&h=295', '<article><p>1.拉取镜像</p><p>docker pull portainer/portainer</p><p>2.启动容器</p><p>docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer</p><p><br/></p></article>', '1572979717222146049', 1, 1, 1, 1, 1, '1', 2, '2022-09-24 12:33:32', '2022-10-12 12:30:01', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575464011735707649', 'Docker 容器间通信（一）', '青云', 'Docker 容器间通信', 'https://img0.baidu.com/it/u=2744268297,1172880589&fm=253&fmt=auto&app=138&f=JPEG?w=720&h=500', '<br/>采用bridge网络通信<br/>创建bridge网络<br/>docker network create testnet<br/><br/>查看Docker网络<br/>docker network ls<br/><br/>运行容器连接到testnet网络<br/>使用方法：docker run -it --name &lt;容器名&gt; —network --network-alias &lt;网络别名&gt; &lt;镜像名&gt;<br/><br/>docker run --name consul1 -d -p 8500:8500 --restart=always  --network testnet --network-alias consul1  consul<br/><br/>docker run --name myservice1 -d -p 5001:80  --network testnet --network-alias myservice1 192.168.8.25:5000/myapi  --ip=myservice1 --port=80  --consulhost=192.168.8.31 --consulport=8500<br/><br/>从一个容器ping另外一个容器<br/>进入容器：<br/>docker exec -it d26e14f6c1df /bin/sh<br/><br/>执行ping 语句<br/>ping myservice1<br/><br/>注：如果出现 /bin/sh: 1: ping: not found 错误<br/>执行以下语句，安装ping<br/>apt-get update<br/>1<br/>apt install iputils-ping<br/>1<br/>也可在容器中直接访问服务<br/>curl -X GET \'http://myservice1:5001/api/health\'<br/>1<br/>退出容器：<br/>exit<br/>1<br/>Docker 通信模式介绍<br/>Docker单主机容器通信<br/>基于对net namespace的控制，docker可以为在容器创建隔离的网络环境，在隔离的网络环境下，容器具有完全独立的网络栈，与宿主机隔离，也可以使容器共享主机或者其他容器的网络命名空间，基本可以满足开发者在各种场景下的需要。<br/>按docker官方的说法，docker容器的网络有五种模式：<br/>bridge模式，–net=bridge(默认)<br/>这是dokcer网络的默认设置，为容器创建独立的网络命名空间，容器具有独立的网卡等所有单独的网络栈，是最常用的使用方式。在docker run启动容器的时候，如果不加–net参数，就默认采用这种网络模式。安装完docker，系统会自动添加一个供docker使用的网桥docker0，我们创建一个新的容器时，容器通过DHCP获取一个与docker0同网段的IP地址，并默认连接到docker0网桥，以此实现容器与宿主机的网络互通。<br/>host模式，–net=host<br/>这个模式下创建出来的容器，直接使用容器宿主机的网络命名空间。将不拥有自己独立的Network Namespace，即没有独立的网络环境。它使用宿主机的ip和端口。<br/>none模式，–net=none<br/>为容器创建独立网络命名空间，但不为它做任何网络配置，容器中只有lo，用户可以在此基础上，对容器网络做任意定制。这个模式下，dokcer不为容器进行任何网络配置。需要我们自己为容器添加网卡，配置IP。因此，若想使用pipework配置docker容器的ip地址，必须要在none模式下才可以。<br/>其他容器模式（即container模式，join模式），–net=container:NAME_or_ID<br/>与host模式类似，只是容器将与指定的容器共享网络命名空间。这个模式就是指定一个已有的容器，共享该容器的IP和端口。除了网络方面两个容器共享，其他的如文件系统，进程等还是隔离开的。<br/>用户自定义<br/>docker 1.9版本以后新增的特性，允许容器使用第三方的网络实现或者创建单独的bridge网络，提供网络隔离能力。<br/>这些网络模式在相互网络通信方面的对比如下所示：<br/>南北向通信指容器与宿主机外界的访问机制，东西向流量指同一宿主机上，与其他容器相互访问的机制。<br/>1）host模式<br/>由于容器和宿主机共享同一个网络命名空间，换言之，容器的IP地址即为宿主机的IP地址。所以容器可以和宿主机一样，使用宿主机的任意网卡，实现和外界的通信。其网络模型可以参照下图：<br/>采用host模式的容器，可以直接使用宿主机的IP地址与外界进行通信，若宿主机具有公有IP，那么容器也拥有这个公有IP。同时容器内服务的端口也可以使用宿主机的端口，无需额外进行NAT转换，而且由于容器通信时，不再需要通过linuxbridge等方式转发或数据包的拆封，性能上有很大优势。当然，这种模式有优势，也就有劣势，主要包括以下几个方面：<br/>1）最明显的就是容器不再拥有隔离、独立的网络栈。容器会与宿主机竞争网络栈的使用，并且容器的崩溃就可能导致宿主机崩溃，在生产环境中，这种问题可能是不被允许的。<br/>2）容器内部将不再拥有所有的端口资源，因为一些端口已经被宿主机服务、bridge模式的容器端口绑定等其他服务占用掉了。<br/>2）bridge模式<br/>bridge模式是docker默认的，也是开发者最常使用的网络模式。在这种模式下，docker为容器创建独立的网络栈，保证容器内的进程使用独立的网络环境，实现容器之间、容器与宿主机之间的网络栈隔离。同时，通过宿主机上的docker0网桥，容器可以与宿主机乃至外界进行网络通信。其网络模型可以参考下图：<br/>从上面的网络模型可以看出，容器从原理上是可以与宿主机乃至外界的其他机器通信的。同一宿主机上，容器之间都是连接掉docker0这个网桥上的，它可以作为虚拟交换机使容器可以相互通信。然而，由于宿主机的IP地址与容器veth pair的 IP地址均不在同一个网段，故仅仅依靠veth pair和namespace的技术，还不足以使宿主机以外的网络主动发现容器的存在。为了使外界可以方位容器中的进程，docker采用了端口绑定的方式，也就是通过iptables的NAT，将宿主机上的端口端口流量转发到容器内的端口上。举一个简单的例子，使用下面的命令创建容器，并将宿主机的3306端口绑定到容器的3306端口：<br/>docker run -tid --name db -p 3306:3306 MySQL<br/>1<br/>在宿主机上，可以通过iptables -t nat -L -n，查到一条DNAT规则：<br/>DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 to:172.17.0.5:3306<br/>1<br/>上面的172.17.0.5即为bridge模式下，创建的容器IP。<br/>很明显，bridge模式的容器与外界通信时，必定会占用宿主机上的端口，从而与宿主机竞争端口资源，对宿主机端口的管理会是一个比较大的问题。同时，由于容器与外界通信是基于三层上iptables NAT，性能和效率上的损耗是可以预见的。<br/>3）none模式<br/>在这种模式下，容器有独立的网络栈，但不包含任何网络配置，只具有lo这个loopback网卡用于进程通信。也就是说，none模式为容器做了最少的网络设置，但是俗话说得好“少即是多”，在没有网络配置的情况下，通过第三方工具或者手工的方式，开发这任意定制容器的网络，提供了最高的灵活性。<br/>4）其他容器（container）模式<br/>其他网络模式是docker中一种较为特别的网络的模式。在这个模式下的容器，会使用其他容器的网络命名空间，其网络隔离性会处于bridge桥接模式与host模式之间。当容器共享其他容器的网络命名空间，则在这两个容器之间不存在网络隔离，而她们又与宿主机以及除此之外其他的容器存在网络隔离。其网络模型可以参考下图：<br/>在这种模式下的容器可以通过localhost来同一网络命名空间下的其他容器，传输效率较高。而且这种模式还节约了一定数量的网络资源，但它并没有改变容器与外界通信的方式。在一些特殊的场景中非常有用，例如，kubernetes的pod，kubernetes为pod创建一个基础设施容器，同一pod下的其他容器都以其他容器模式共享这个基础设施容器的网络命名空间，相互之间以localhost访问，构成一个统一的整体。<br/>5）用户定义网络模式<br/>在用户定义网络模式下，开发者可以使用任何docker支持的第三方网络driver来定制容器的网络。并且，docker 1.9以上的版本默认自带了bridge和overlay两种类型的自定义网络driver。可以用于集成calico、weave、openvswitch等第三方厂商的网络实现。 除了docker自带的bridge driver，其他的几种driver都可以实现容器的跨主机通信。而基于bdrige driver的网络，docker会自动为其创建iptables规则，保证与其他网络之间、与docker0之间的网络隔离。 例如，使用下面的命令创建一个基于bridge driver的自定义网络：<br/>docker network create bri1<br/>则docker会自动生成如下的iptables规则，保证不同网络上的容器无法互相通信。<br/>DOCKER-ISOLATION -i br-8dba6df70456 -o docker0 -j DROP<br/>DOCKER-ISOLATION -i docker0 -o br-8dba6df70456 -j DROP<br/>1<br/>2<br/>除此之外，bridge driver的所有行为都和默认的bridge模式完全一致。而overlay及其他driver，则可以实现容器的跨主机通信。<br/>具体关于Docker 通信模式，可参照<br/><a href=\"https://www.cnblogs.com/kevingrace/p/6590319.html\" target=\"_blank\">https://www.cnblogs.com/kevingrace/p/6590319.html</a><br/>————————————————<br/>版权声明：本文为CSDN博主「黑白独行」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。<br/>原文链接：<a href=\"https://blog.csdn.net/weixin_41003771/article/details/119137044\" target=\"_blank\">https://blog.csdn.net/weixin_41003771/article/details/119137044</a><section></section>', '1572979717222146049', 1, 1, 1, 1, 1, '2', 2, '2022-09-25 12:34:25', '2022-10-12 12:30:06', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575464506911043585', 'docker-compose安装', '青云', 'docker-compose安装', 'https://img2.baidu.com/it/u=4239279822,2544661030&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=269', '1..确保系统已经安装了docker，使用以下命令来下载docker-compose<br/>curl -L \"<a href=\"https://github.com/docker/compose/releases/download/1.26.2/docker-compose-\" target=\"_blank\">https://github.com/docker/compose/releases/download/1.26.2/docker-compose-</a>$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose<br/>2.如果遇到这个问题，curl: (35) Peer reports incompatible or unsupported protocol version。是curl 不兼容或不支持的协议版本centos系统<br/>yum update -y nss curl libcurl<br/><br/>3.解决下载缓慢问题<br/>curl -L <a href=\"https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-\" target=\"_blank\">https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-</a>`uname -s`-`uname -m` &gt; /usr/local/bin/docker-compose<br/><br/>4.如果我们会遇到服务器证书检查问题，我们只需要在命令的最后加上-k即可，表示不进行证书检查，这样就可以直接下载了<br/>curl -L <a href=\"https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-\" target=\"_blank\">https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-</a>`uname -s`-`uname -m` &gt; /usr/local/bin/docker-compose -k<br/><br/>5.卸载docker-compose<br/>sudo rm /usr/local/bin/docker-compose<br/><br/><br/><br/><br/><p><strong></strong></p>', '1572979717222146049', 2, 1, 1, 1, 1, '1', 3, '2022-09-26 12:36:23', '2022-10-12 12:30:10', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575464732430381058', 'Docker命令笔记', '青云', 'Docker命令笔记', 'https://img1.baidu.com/it/u=2869807005,2413629818&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=400', '<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;docker命令笔记\n              </p><p>查看各个容器的IP</p><p>\n                docker inspect --format=\'{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}\' $(docker ps -aq)\n              </p><p>docker中 启动所有的容器命令</p><p>\n                docker start $(docker ps -a | awk \'{ print $1}\' | tail -n +2)\n              </p><p>docker中 关闭所有的容器命令</p><p>\n                docker stop $(docker ps -a | awk \'{ print $1}\' | tail -n +2)\n              </p><p>docker中 删除所有的容器命令</p><p>\n                docker rm $(docker ps -a | awk \'{ print $1}\' | tail -n +2)\n              </p><p>docker中 删除所有的镜像</p><p>\n                docker rmi $(docker images | awk \'{print $3}\' |tail -n +2)\n              </p><p>查看容器启动后的ip地址</p><p>\n                docker inspect mysql | grep IPAddress\n              </p><p>删除none镜像：</p><p>\n                docker&nbsp;image&nbsp;prune\n              </p><p>\n                docker rmi $(docker images |grep service | awk \'{print $3}\' |tail -n +1)\n              </p><p>\n                docker-compose -f docker-compose.yml up -d --compatibility --build\n              </p><p>\n                docker logs -f --tail=1000 506bb091f60f\n              </p><p>\n                docker-compose --compatibility up -d\n              </p><p>docker&nbsp;builder&nbsp;prune</p><p>docker&nbsp;system&nbsp;df</p>', '1572979717222146049', 3, 1, 1, 1, 1, '1', 4, '2022-09-27 12:37:17', '2022-10-12 12:30:14', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575464960919285762', 'Docker Jenkins安装', '青云', 'Docker Jenkins安装', 'https://img0.baidu.com/it/u=3292546768,2346567442&fm=253&fmt=auto&app=138&f=JPEG?w=651&h=338', '1、拉取镜像<br/>docker pull nacos-server:1.4.2<br/><br/>2、mysql中创建对应数据库和表<br/>执行sql脚本，脚本文件下载地址：nacos/nacos-mysql.sql at 1.4.2 · alibaba/nacos · GitHub<br/>/*<br/> * Copyright 1999-2018 Alibaba Group Holding Ltd.<br/> *<br/> * Licensed under the Apache License, Version 2.0 (the \"License\");<br/> * you may not use this file except in compliance with the License.<br/> * You may obtain a copy of the License at<br/> *<br/> *      <a href=\"http://www.apache.org/licenses/LICENSE-2.0\" target=\"_blank\">http://www.apache.org/licenses/LICENSE-2.0</a><br/> *<br/> * Unless required by applicable law or agreed to in writing, software<br/> * distributed under the License is distributed on an \"AS IS\" BASIS,<br/> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br/> * See the License for the specific language governing permissions and<br/> * limitations under the License.<br/> */<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info   */<br/>/******************************************/<br/>CREATE TABLE `config_info` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(255) DEFAULT NULL,<br/>  `content` longtext NOT NULL COMMENT \'content\',<br/>  `md5` varchar(32) DEFAULT NULL COMMENT \'md5\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  `src_user` text COMMENT \'source user\',<br/>  `src_ip` varchar(50) DEFAULT NULL COMMENT \'source ip\',<br/>  `app_name` varchar(128) DEFAULT NULL,<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  `c_desc` varchar(256) DEFAULT NULL,<br/>  `c_use` varchar(64) DEFAULT NULL,<br/>  `effect` varchar(64) DEFAULT NULL,<br/>  `type` varchar(64) DEFAULT NULL,<br/>  `c_schema` text,<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_info\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info_aggr   */<br/>/******************************************/<br/>CREATE TABLE `config_info_aggr` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(255) NOT NULL COMMENT \'group_id\',<br/>  `datum_id` varchar(255) NOT NULL COMMENT \'datum_id\',<br/>  `content` longtext NOT NULL COMMENT \'内容\',<br/>  `gmt_modified` datetime NOT NULL COMMENT \'修改时间\',<br/>  `app_name` varchar(128) DEFAULT NULL,<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'增加租户字段\';<br/><br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info_beta   */<br/>/******************************************/<br/>CREATE TABLE `config_info_beta` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(128) NOT NULL COMMENT \'group_id\',<br/>  `app_name` varchar(128) DEFAULT NULL COMMENT \'app_name\',<br/>  `content` longtext NOT NULL COMMENT \'content\',<br/>  `beta_ips` varchar(1024) DEFAULT NULL COMMENT \'betaIps\',<br/>  `md5` varchar(32) DEFAULT NULL COMMENT \'md5\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  `src_user` text COMMENT \'source user\',<br/>  `src_ip` varchar(50) DEFAULT NULL COMMENT \'source ip\',<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_info_beta\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info_tag   */<br/>/******************************************/<br/>CREATE TABLE `config_info_tag` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(128) NOT NULL COMMENT \'group_id\',<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'tenant_id\',<br/>  `tag_id` varchar(128) NOT NULL COMMENT \'tag_id\',<br/>  `app_name` varchar(128) DEFAULT NULL COMMENT \'app_name\',<br/>  `content` longtext NOT NULL COMMENT \'content\',<br/>  `md5` varchar(32) DEFAULT NULL COMMENT \'md5\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  `src_user` text COMMENT \'source user\',<br/>  `src_ip` varchar(50) DEFAULT NULL COMMENT \'source ip\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_info_tag\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_tags_relation   */<br/>/******************************************/<br/>CREATE TABLE `config_tags_relation` (<br/>  `id` bigint(20) NOT NULL COMMENT \'id\',<br/>  `tag_name` varchar(128) NOT NULL COMMENT \'tag_name\',<br/>  `tag_type` varchar(64) DEFAULT NULL COMMENT \'tag_type\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(128) NOT NULL COMMENT \'group_id\',<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'tenant_id\',<br/>  `nid` bigint(20) NOT NULL AUTO_INCREMENT,<br/>  PRIMARY KEY (`nid`),<br/>  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),<br/>  KEY `idx_tenant_id` (`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_tag_relation\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = group_capacity   */<br/>/******************************************/<br/>CREATE TABLE `group_capacity` (<br/>  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT \'主键ID\',<br/>  `group_id` varchar(128) NOT NULL DEFAULT \'\' COMMENT \'Group ID，空字符表示整个集群\',<br/>  `quota` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'配额，0表示使用默认值\',<br/>  `usage` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'使用量\',<br/>  `max_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'聚合子配置最大个数，，0表示使用默认值\',<br/>  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个聚合数据的子配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_history_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'最大变更历史数量\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_group_id` (`group_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'集群、各Group容量信息表\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = his_config_info   */<br/>/******************************************/<br/>CREATE TABLE `his_config_info` (<br/>  `id` bigint(64) unsigned NOT NULL,<br/>  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,<br/>  `data_id` varchar(255) NOT NULL,<br/>  `group_id` varchar(128) NOT NULL,<br/>  `app_name` varchar(128) DEFAULT NULL COMMENT \'app_name\',<br/>  `content` longtext NOT NULL,<br/>  `md5` varchar(32) DEFAULT NULL,<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,<br/>  `src_user` text,<br/>  `src_ip` varchar(50) DEFAULT NULL,<br/>  `op_type` char(10) DEFAULT NULL,<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  PRIMARY KEY (`nid`),<br/>  KEY `idx_gmt_create` (`gmt_create`),<br/>  KEY `idx_gmt_modified` (`gmt_modified`),<br/>  KEY `idx_did` (`data_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'多租户改造\';<br/><br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = tenant_capacity   */<br/>/******************************************/<br/>CREATE TABLE `tenant_capacity` (<br/>  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT \'主键ID\',<br/>  `tenant_id` varchar(128) NOT NULL DEFAULT \'\' COMMENT \'Tenant ID\',<br/>  `quota` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'配额，0表示使用默认值\',<br/>  `usage` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'使用量\',<br/>  `max_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'聚合子配置最大个数\',<br/>  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个聚合数据的子配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_history_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'最大变更历史数量\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_tenant_id` (`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'租户容量信息表\';<br/><br/><br/>CREATE TABLE `tenant_info` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `kp` varchar(128) NOT NULL COMMENT \'kp\',<br/>  `tenant_id` varchar(128) default \'\' COMMENT \'tenant_id\',<br/>  `tenant_name` varchar(128) default \'\' COMMENT \'tenant_name\',<br/>  `tenant_desc` varchar(256) DEFAULT NULL COMMENT \'tenant_desc\',<br/>  `create_source` varchar(32) DEFAULT NULL COMMENT \'create_source\',<br/>  `gmt_create` bigint(20) NOT NULL COMMENT \'创建时间\',<br/>  `gmt_modified` bigint(20) NOT NULL COMMENT \'修改时间\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),<br/>  KEY `idx_tenant_id` (`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'tenant_info\';<br/><br/>CREATE TABLE `users` (<br/>`username` varchar(50) NOT NULL PRIMARY KEY,<br/>`password` varchar(500) NOT NULL,<br/>`enabled` boolean NOT NULL<br/>);<br/><br/>CREATE TABLE `roles` (<br/>`username` varchar(50) NOT NULL,<br/>`role` varchar(50) NOT NULL,<br/>UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE<br/>);<br/><br/>CREATE TABLE `permissions` (<br/>    `role` varchar(50) NOT NULL,<br/>    `resource` varchar(255) NOT NULL,<br/>    `action` varchar(8) NOT NULL,<br/>    UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE<br/>);<br/><br/>INSERT INTO users (username, password, enabled) VALUES (\'nacos\', \'$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu\', TRUE);<br/><br/>INSERT INTO roles (username, role) VALUES (\'nacos\', \'ROLE_ADMIN\');<br/>3、创建本机映射目录<br/>mkdir -p /root/nacos/conf &amp;&amp; mkdir -p /root/nacos/logs<br/><br/>4、启动容器复制文件<br/>启动容器：<br/>docker run  \\<br/>--name nacos-tmp \\<br/>-e PREFER_HOST_MODE=hostname \\<br/>-e MODE=standalone \\<br/>-p 8848:8848 \\<br/>-d nacos/nacos-server:1.4.2<br/><br/>复制文件：<br/>docker cp nacos-tmp:/root/nacos/conf/ /root/nacos/<br/>注意：复制文件后，在/root/nacos/目录下会有文件生成，<br/><br/>需要关注application.properties文件，里面有很多变量，需要在后面容器启动的时候设置相关的变量。<br/>删除临时容器<br/>docker stop nacos &amp;&amp; docker rm nacos<br/><br/>5、重新启动容器<br/>docker run \\<br/>--env MODE=standalone \\<br/>--env PREFER_HOST_MODE=192.168.110.100 \\<br/>--env TZ=Asia/Shanghai \\<br/>--env SPRING_DATASOURCE_PLATFORM=mysql \\<br/>--env MYSQL_SERVICE_HOST=192.168.110.100 \\<br/>--env MYSQL_SERVICE_PORT=3306 \\<br/>--env MYSQL_SERVICE_USER=root \\<br/>--env MYSQL_SERVICE_PASSWORD=root \\<br/>--env MYSQL_SERVICE_DB_NAME=nacos_config \\<br/>--env MYSQL_SERVICE_DB_PARAM=\"characterEncoding=utf8&amp;connectTimeout=10000&amp;socketTimeout=3000&amp;autoReconnect=true&amp;useSSL=false&amp;serverTimezone=UTC\" \\<br/>--name nacos -d -p 8848:8848 \\<br/>-v /root/nacos/conf:/home/nacos/conf -v /root/nacos/logs:/home/nacos/logs \\<br/>--restart always nacos/nacos-server:1.4.2<br/><br/>备注：<br/>这里如果nacos版本是2.0往上的版本，需要额外多暴露两个端口9848、9849<br/>docker run \\<br/>--env MODE=standalone \\<br/>--env PREFER_HOST_MODE=192.168.110.100 \\<br/>--env TZ=Asia/Shanghai \\<br/>--env SPRING_DATASOURCE_PLATFORM=mysql \\<br/>--env MYSQL_SERVICE_HOST=192.168.110.100 \\<br/>--env MYSQL_SERVICE_PORT=3306 \\<br/>--env MYSQL_SERVICE_USER=root \\<br/>--env MYSQL_SERVICE_PASSWORD=root \\<br/>--env MYSQL_SERVICE_DB_NAME=nacos_config \\<br/>--env MYSQL_SERVICE_DB_PARAM=\"characterEncoding=utf8&amp;connectTimeout=10000&amp;socketTimeout=3000&amp;autoReconnect=true&amp;useSSL=false&amp;serverTimezone=UTC\" \\<br/>--name nacos -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \\<br/>-v /root/nacos/conf:/home/nacos/conf -v /root/nacos/logs:/home/nacos/logs \\<br/>--restart always nacos/nacos-server:1.4.2<br/><br/>参考连接：<a href=\"https://blog.csdn.net/zcp1996/article/details/122775342\" target=\"_blank\">https://blog.csdn.net/zcp1996/article/details/122775342</a><p><strong></strong></p>', '1572979717222146049', 27, 1, 1, 1, 1, '1', 28, '2022-09-28 12:38:12', '2022-10-12 12:30:18', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575465159616049154', 'Docker安装Redis5.0.4单机版', '青云', 'Docker安装Redis5.0.4单机版', 'https://img0.baidu.com/it/u=1324041303,1243178404&fm=253&fmt=auto&app=138&f=JPEG?w=640&h=360', '<article><p>1 .拉取镜像</p><p>docker pull redis:5.0.4</p><p>2.带密码启动</p><p>docker run --name redis --sysctl net.core.somaxconn=1024 \\\n-p 6379:6379 \\\n-v /usr/local/docker/redis/data:/data \\\n-v /usr/local/docker/redis/conf:/usr/local/etc/redis/redis.conf \\\n--network testnet --network-alias testnet \\\n--restart always -d redis:5.0.4 redis-server \\\n--appendonly yes --requirepass 123456</p><p>docker run --name redis \\\n</p><p>-p 6379:6379 \\\n</p><p>-v /usr/local/docker/redis/data:/data \\\n</p><p>-v /usr/local/docker/redis/conf:/usr/local/etc/redis/redis.conf \\</p><p>--network testnet --network-alias testnet \\\n</p><p>--restart always -d redis:5.0.4 redis-server \\</p><p>--appendonly yes --requirepass 123456</p></article>', '1572979717222146049', 5, 1, 1, 1, 1, '1', 6, '2022-09-29 12:38:59', '2022-10-11 14:54:52', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575465625263484929', 'Docker安装nginx', '青云', 'Docker安装nginx', 'https://img2.baidu.com/it/u=3030198385,1708550834&fm=253&fmt=auto&app=138&f=JPEG?w=791&h=500', '<p>docker pull nginx</p><p>\n                docker run -d -p 80:80 --name nginx \\\n  -v /opt/docker/nginx/www:/usr/share/nginx/html \\\n  -v /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \\\n  -v /opt/docker/nginx/logs:/var/log/nginx \\\n--network testnet --network-alias testnet \\\n--restart always -d\n  nginx\n              </p><p>\n                docker run -d -p 80:80 --name nginx \\\n  -v /root/nginx/www:/usr/share/nginx/html \\\n  -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \\\n  -v /root/nginx/logs:/var/log/nginx \\\n  nginx\n              </p><p>docker run -d -p 80:80 --name nginx \\\n  -v /opt/nginx/www:/usr/share/nginx/html \\\n  -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \\\n  -v /opt/nginx/logs:/var/log/nginx \\\n  nginx</p><p>docker run -d -p 80:80 --name nginx \\</p><p>-v /opt/docker/nginx/www:/usr/share/nginx/html \\</p><p>-v /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \\</p><p>-v /opt/docker/nginx/logs:/var/log/nginx \\</p><p>--network testnet --network-alias testnet \\</p><p>--restart always -d nginx</p><p><strong></strong></p>', '1572979717222146049', 4, 1, 1, 1, 1, '1', 5, '2022-08-29 12:40:50', '2022-10-12 12:30:26', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575465889819209729', 'Docker安装MySQL5.7', '青云', 'Docker安装MySQL5.7', 'https://img2.baidu.com/it/u=610827557,3694357189&fm=253&fmt=auto&app=138&f=JPEG?w=821&h=500', '<br/>1.拉取官方mysql5.7镜像 <br/>docker pull mysql:5.7<br/><br/>2.查看镜像库<br/>docker images<br/><br/>3.新建配置文件<br/>在本地创建mysql的映射目录<br/>mkdir -p \\<br/>/usr/local/docker/mysql/data \\<br/>/usr/local/docker/mysql/logs \\<br/>/usr/local/docker/mysql/conf<br/><br/>cd /usr/local/docker/mysql/conf<br/><br/>vim mysqld.cnf<br/><br/>[client]<br/>default-character-set=utf8<br/> <br/>[mysql]<br/>default-character-set=utf8<br/> <br/>[mysqld]<br/>pid-file        = /var/run/mysqld/mysqld.pid<br/>socket          = /var/run/mysqld/mysqld.sock<br/>datadir         = /var/lib/mysql<br/>#log-error      = /var/log/mysql/error.log<br/># By default we only accept connections from localhost<br/>#bind-address   = 127.0.0.1<br/># Disabling symbolic-links is recommended to prevent assorted security risks<br/>symbolic-links=0<br/>lower_case_table_names=1<br/> <br/>init_connect=\'SET collation_connection = utf8_general_ci\'<br/>init_connect=\'SET NAMES utf8\'<br/>character-set-server=utf8<br/>collation-server=utf8_general_ci<br/> <br/>max_connections = 1000<br/><br/>4.创建并启动容器,将数据,日志,配置文件映射到本机<br/>docker run -p 3306:3306 --name mysql \\<br/>-v /usr/local/docker/mysql/conf:/etc/mysql/conf.d \\<br/>-v /usr/local/docker/mysql/logs:/logs \\<br/>-v /usr/local/docker/mysql/data:/var/lib/mysql \\<br/>-v /etc/localtime:/etc/localtime:ro \\<br/>-e MYSQL_ROOT_PASSWORD=zhanxuewei123.. \\<br/>--network testnet --network-alias testnet \\<br/>--restart=always \\<br/>-d mysql:5.7 <br/><br/>说明：<br/>-p 将容器的端口映射到本机的端口<br/>--name 容器名称<br/>-v 将主机目录挂载到容器的目录<br/>-e 设置参数<br/>--network 共享网络<br/>-d: 后台运行容器<br/>--restart=always 设置开机自启<br/><br/><br/>查看/root/mysql/data目录是否有数据文件<br/>使用工具连接测试<br/><br/>', '1572979717222146049', 1, 1, 1, 1, 1, '1', 2, '2022-08-30 12:41:53', '2022-10-12 12:30:31', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466205495111682', 'Docker安装Nacos容器并配置Mysql持久化', '青云', 'Docker安装Nacos容器并配置Mysql持久化', 'https://img2.baidu.com/it/u=2211768111,3185478974&fm=253&fmt=auto&app=138&f=JPEG?w=650&h=372', '1、拉取镜像<br/>docker pull nacos-server:1.4.2<br/><br/>2、mysql中创建对应数据库和表<br/>执行sql脚本，脚本文件下载地址：nacos/nacos-mysql.sql at 1.4.2 · alibaba/nacos · GitHub<br/>/*<br/> * Copyright 1999-2018 Alibaba Group Holding Ltd.<br/> *<br/> * Licensed under the Apache License, Version 2.0 (the \"License\");<br/> * you may not use this file except in compliance with the License.<br/> * You may obtain a copy of the License at<br/> *<br/> *      <a href=\"http://www.apache.org/licenses/LICENSE-2.0\" target=\"_blank\">http://www.apache.org/licenses/LICENSE-2.0</a><br/> *<br/> * Unless required by applicable law or agreed to in writing, software<br/> * distributed under the License is distributed on an \"AS IS\" BASIS,<br/> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br/> * See the License for the specific language governing permissions and<br/> * limitations under the License.<br/> */<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info   */<br/>/******************************************/<br/>CREATE TABLE `config_info` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(255) DEFAULT NULL,<br/>  `content` longtext NOT NULL COMMENT \'content\',<br/>  `md5` varchar(32) DEFAULT NULL COMMENT \'md5\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  `src_user` text COMMENT \'source user\',<br/>  `src_ip` varchar(50) DEFAULT NULL COMMENT \'source ip\',<br/>  `app_name` varchar(128) DEFAULT NULL,<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  `c_desc` varchar(256) DEFAULT NULL,<br/>  `c_use` varchar(64) DEFAULT NULL,<br/>  `effect` varchar(64) DEFAULT NULL,<br/>  `type` varchar(64) DEFAULT NULL,<br/>  `c_schema` text,<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_info\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info_aggr   */<br/>/******************************************/<br/>CREATE TABLE `config_info_aggr` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(255) NOT NULL COMMENT \'group_id\',<br/>  `datum_id` varchar(255) NOT NULL COMMENT \'datum_id\',<br/>  `content` longtext NOT NULL COMMENT \'内容\',<br/>  `gmt_modified` datetime NOT NULL COMMENT \'修改时间\',<br/>  `app_name` varchar(128) DEFAULT NULL,<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'增加租户字段\';<br/><br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info_beta   */<br/>/******************************************/<br/>CREATE TABLE `config_info_beta` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(128) NOT NULL COMMENT \'group_id\',<br/>  `app_name` varchar(128) DEFAULT NULL COMMENT \'app_name\',<br/>  `content` longtext NOT NULL COMMENT \'content\',<br/>  `beta_ips` varchar(1024) DEFAULT NULL COMMENT \'betaIps\',<br/>  `md5` varchar(32) DEFAULT NULL COMMENT \'md5\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  `src_user` text COMMENT \'source user\',<br/>  `src_ip` varchar(50) DEFAULT NULL COMMENT \'source ip\',<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_info_beta\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_info_tag   */<br/>/******************************************/<br/>CREATE TABLE `config_info_tag` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(128) NOT NULL COMMENT \'group_id\',<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'tenant_id\',<br/>  `tag_id` varchar(128) NOT NULL COMMENT \'tag_id\',<br/>  `app_name` varchar(128) DEFAULT NULL COMMENT \'app_name\',<br/>  `content` longtext NOT NULL COMMENT \'content\',<br/>  `md5` varchar(32) DEFAULT NULL COMMENT \'md5\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  `src_user` text COMMENT \'source user\',<br/>  `src_ip` varchar(50) DEFAULT NULL COMMENT \'source ip\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_info_tag\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = config_tags_relation   */<br/>/******************************************/<br/>CREATE TABLE `config_tags_relation` (<br/>  `id` bigint(20) NOT NULL COMMENT \'id\',<br/>  `tag_name` varchar(128) NOT NULL COMMENT \'tag_name\',<br/>  `tag_type` varchar(64) DEFAULT NULL COMMENT \'tag_type\',<br/>  `data_id` varchar(255) NOT NULL COMMENT \'data_id\',<br/>  `group_id` varchar(128) NOT NULL COMMENT \'group_id\',<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'tenant_id\',<br/>  `nid` bigint(20) NOT NULL AUTO_INCREMENT,<br/>  PRIMARY KEY (`nid`),<br/>  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),<br/>  KEY `idx_tenant_id` (`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'config_tag_relation\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = group_capacity   */<br/>/******************************************/<br/>CREATE TABLE `group_capacity` (<br/>  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT \'主键ID\',<br/>  `group_id` varchar(128) NOT NULL DEFAULT \'\' COMMENT \'Group ID，空字符表示整个集群\',<br/>  `quota` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'配额，0表示使用默认值\',<br/>  `usage` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'使用量\',<br/>  `max_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'聚合子配置最大个数，，0表示使用默认值\',<br/>  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个聚合数据的子配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_history_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'最大变更历史数量\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_group_id` (`group_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'集群、各Group容量信息表\';<br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = his_config_info   */<br/>/******************************************/<br/>CREATE TABLE `his_config_info` (<br/>  `id` bigint(64) unsigned NOT NULL,<br/>  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,<br/>  `data_id` varchar(255) NOT NULL,<br/>  `group_id` varchar(128) NOT NULL,<br/>  `app_name` varchar(128) DEFAULT NULL COMMENT \'app_name\',<br/>  `content` longtext NOT NULL,<br/>  `md5` varchar(32) DEFAULT NULL,<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,<br/>  `src_user` text,<br/>  `src_ip` varchar(50) DEFAULT NULL,<br/>  `op_type` char(10) DEFAULT NULL,<br/>  `tenant_id` varchar(128) DEFAULT \'\' COMMENT \'租户字段\',<br/>  PRIMARY KEY (`nid`),<br/>  KEY `idx_gmt_create` (`gmt_create`),<br/>  KEY `idx_gmt_modified` (`gmt_modified`),<br/>  KEY `idx_did` (`data_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'多租户改造\';<br/><br/><br/>/******************************************/<br/>/*   数据库全名 = nacos_config   */<br/>/*   表名称 = tenant_capacity   */<br/>/******************************************/<br/>CREATE TABLE `tenant_capacity` (<br/>  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT \'主键ID\',<br/>  `tenant_id` varchar(128) NOT NULL DEFAULT \'\' COMMENT \'Tenant ID\',<br/>  `quota` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'配额，0表示使用默认值\',<br/>  `usage` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'使用量\',<br/>  `max_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'聚合子配置最大个数\',<br/>  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'单个聚合数据的子配置大小上限，单位为字节，0表示使用默认值\',<br/>  `max_history_count` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'最大变更历史数量\',<br/>  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',<br/>  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_tenant_id` (`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'租户容量信息表\';<br/><br/><br/>CREATE TABLE `tenant_info` (<br/>  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'id\',<br/>  `kp` varchar(128) NOT NULL COMMENT \'kp\',<br/>  `tenant_id` varchar(128) default \'\' COMMENT \'tenant_id\',<br/>  `tenant_name` varchar(128) default \'\' COMMENT \'tenant_name\',<br/>  `tenant_desc` varchar(256) DEFAULT NULL COMMENT \'tenant_desc\',<br/>  `create_source` varchar(32) DEFAULT NULL COMMENT \'create_source\',<br/>  `gmt_create` bigint(20) NOT NULL COMMENT \'创建时间\',<br/>  `gmt_modified` bigint(20) NOT NULL COMMENT \'修改时间\',<br/>  PRIMARY KEY (`id`),<br/>  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),<br/>  KEY `idx_tenant_id` (`tenant_id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=\'tenant_info\';<br/><br/>CREATE TABLE `users` (<br/>`username` varchar(50) NOT NULL PRIMARY KEY,<br/>`password` varchar(500) NOT NULL,<br/>`enabled` boolean NOT NULL<br/>);<br/><br/>CREATE TABLE `roles` (<br/>`username` varchar(50) NOT NULL,<br/>`role` varchar(50) NOT NULL,<br/>UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE<br/>);<br/><br/>CREATE TABLE `permissions` (<br/>    `role` varchar(50) NOT NULL,<br/>    `resource` varchar(255) NOT NULL,<br/>    `action` varchar(8) NOT NULL,<br/>    UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE<br/>);<br/><br/>INSERT INTO users (username, password, enabled) VALUES (\'nacos\', \'$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu\', TRUE);<br/><br/>INSERT INTO roles (username, role) VALUES (\'nacos\', \'ROLE_ADMIN\');<br/>3、创建本机映射目录<br/>mkdir -p /usr/local/docker/nacos/conf &amp;&amp; mkdir -p /usr/local/docker/nacos/logs<br/><br/>4、启动容器复制文件<br/>启动容器：<br/>docker run  \\<br/>--name nacos \\<br/>-e PREFER_HOST_MODE=hostname \\<br/>-e MODE=standalone \\<br/>-p 8848:8848 \\<br/>-d nacos/nacos-server:1.4.2<br/><br/>复制文件：<br/>docker cp nacos:/home/nacos/conf/ /usr/local/docker/nacos<br/>注意：复制文件后，在/root/nacos/目录下会有文件生成，<br/><br/>需要关注application.properties文件，里面有很多变量，需要在后面容器启动的时候设置相关的变量。<br/>删除临时容器<br/>docker stop nacos &amp;&amp; docker rm nacos<br/><br/>5、重新启动容器<br/>docker run \\<br/>--env MODE=standalone \\<br/>--env PREFER_HOST_MODE=16.205.164.251 \\<br/>--env TZ=Asia/Shanghai \\<br/>--env SPRING_DATASOURCE_PLATFORM=mysql \\<br/>--env MYSQL_SERVICE_HOST=16.205.164.251 \\<br/>--env MYSQL_SERVICE_PORT=3306 \\<br/>--env MYSQL_SERVICE_USER=root \\<br/>--env MYSQL_SERVICE_PASSWORD=root \\<br/>--env MYSQL_SERVICE_DB_NAME=nacos_config \\<br/>--env MYSQL_SERVICE_DB_PARAM=\"characterEncoding=utf8&amp;connectTimeout=10000&amp;socketTimeout=3000&amp;autoReconnect=true&amp;useSSL=false&amp;serverTimezone=UTC\" \\<br/>--name nacos -d -p 8848:8848 \\<br/>--network testnet --network-alias testnet \\<br/>-v /usr/local/docker/nacos/conf:/opt/docker/nacos/conf -v /usr/local/docker/nacos/logs:/opt/docker/nacos/logs \\<br/>--restart always nacos/nacos-server:1.4.2<br/><br/>备注：<br/>这里如果nacos版本是2.0往上的版本，需要额外多暴露两个端口9848、9849<br/>docker run \\<br/>--env MODE=standalone \\<br/>--env PREFER_HOST_MODE=192.168.1.5 \\<br/>--env TZ=Asia/Shanghai \\<br/>--env SPRING_DATASOURCE_PLATFORM=mysql \\<br/>--env MYSQL_SERVICE_HOST=192.168.1.5 \\<br/>--env MYSQL_SERVICE_PORT=3306 \\<br/>--env MYSQL_SERVICE_USER=root \\<br/>--env MYSQL_SERVICE_PASSWORD=root \\<br/>--env MYSQL_SERVICE_DB_NAME=nacos_config \\<br/>--env MYSQL_SERVICE_DB_PARAM=\"characterEncoding=utf8&amp;connectTimeout=10000&amp;socketTimeout=3000&amp;autoReconnect=true&amp;useSSL=false&amp;serverTimezone=UTC\" \\<br/>--name nacos -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \\<br/>-v /usr/local/docker/nacos/conf:/home/nacos/conf -v /usr/local/docker/nacos/logs:/home/nacos/logs \\<br/>--restart always nacos/nacos-server:1.4.2<br/><br/><br/>docker run --env MODE=standalone --env PREFER_HOST_MODE=116.205.164.251 --env TZ=Asia/Shanghai --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=116.205.164.251 --env MYSQL_SERVICE_PORT=3306 --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=zhanxuewei123.. --env MYSQL_SERVICE_DB_NAME=nacos_config --env MYSQL_SERVICE_DB_PARAM=\"characterEncoding=utf8&amp;connectTimeout=10000&amp;socketTimeout=3000&amp;autoReconnect=true&amp;useSSL=false&amp;serverTimezone=UTC\" --name nacos -d -p 8848:8848 --network testnet --network-alias testnet -v /usr/local/docker/nacos/conf:/opt/docker/nacos/conf -v /usr/local/docker/nacos/logs:/opt/docker/nacos/logs --restart always nacos/nacos-server:1.4.2<br/><br/>', '1572979717222146049', 12, 1, 1, 1, 1, '1', 13, '2022-08-31 12:43:08', '2022-10-12 12:30:34', '1');
INSERT INTO `t_article` (`id`, `title`, `author`, `short_line`, `cover`, `content`, `category_id`, `count_scan`, `is_carousel`, `is_recommend`, `is_original`, `is_top`, `tag_ids`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466468096290817', 'Docker安装RabbitMQ(单节点)', '青云', 'Docker安装RabbitMQ(单节点)', 'https://img2.baidu.com/it/u=2152653566,2839169616&fm=253&fmt=auto&app=138&f=JPEG?w=926&h=500', '<h2 id=\"wqfsg\">一、拉取镜像<b></b><span style=\"font-size: 14px;\"></span></h2><article><pre><code class=\"Bash\">docker search rabbitmq \n\ndocker pull rabbitmq:3-management</code></pre><p><br/></p><h2 id=\"9jay6\">二、运行 rabbitmq</h2><pre><code class=\"Bash\">docker run -d -p 15672:15672 -p 5672:5672 \\\n-e RABBITMQ_DEFAULT_VHOST=my_vhost  \\\n-e RABBITMQ_DEFAULT_USER=admin \\\n-e RABBITMQ_DEFAULT_PASS=admin \\\n--hostname myRabbit \\\n--network testnet --network-alias testnet \\\n--name rabbitmq \\\nrabbitmq:3-management</code></pre></article><p>说明：</p><article><code>-d：表示在后台运行容器；&nbsp;</code></article><article><code>-p：将容器的端口 5672（应用访问端口）和 15672 （控制台Web端口号）映射到主机中；&nbsp;</code></article><article><code>-e：指定环境变量：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code></article><article><code>　　　　RABBITMQ_DEFAULT_VHOST：默认虚拟机名；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code></article><article><code>　　　　RABBITMQ_DEFAULT_USER：默认的用户名；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code></article><article><code>　　　　RABBITMQ_DEFAULT_PASS：默认的用户密码；&nbsp;</code></article><article><code>--hostname：指定主机名（RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据，默认为主机名）；&nbsp;</code></article><article><code>--name rabbitmq：设置容器名称；&nbsp;</code></article><article><code>rabbitmq：容器使用的镜像名称</code><p><br/></p></article><h2 id=\"m7uib\">三、启动 rabbitmq_management</h2><article><p>方式一：进入容器内部操作&nbsp;</p><p><code>docker exec -it rabbitmq /bin/bash\nrabbitmq-plugins enable rabbitmq_management&nbsp;</code></p><p>&nbsp;方式二：&nbsp;</p><p><code>docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management&nbsp;&nbsp;</code></p><p><br/></p><h2 id=\"25gcp\">四、访问，测试</h2><p>现在可以通过访问http://localhost:15672，访问web界面，这里的用户名和密码默认都是guest  ()admin/admin)<br/>输入命令：exit退出容器目录.<br/></p><p><br/></p><p><br/></p></article>', '1572979717222146049', 53, 1, 1, 1, 1, '1', 54, '2022-09-29 08:44:11', '2022-10-12 12:30:44', '1');
COMMIT;

-- ----------------------------
-- Table structure for t_article_category
-- ----------------------------
DROP TABLE IF EXISTS `t_article_category`;
CREATE TABLE `t_article_category` (
  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章分类id',
  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章分类名称',
  `enabled` tinyint(1) DEFAULT '1' COMMENT '是否启用',
  `version` bigint(20) unsigned DEFAULT '1' COMMENT '乐观锁',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除状态 : 1 未删除，0 已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章分类表';

-- ----------------------------
-- Records of t_article_category
-- ----------------------------
BEGIN;
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571867417044008962', 'HTML', 0, 1, '2022-09-19 14:22:50', '2022-10-09 20:45:55', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571867504809820161', 'JAVA', 0, 1, '2022-09-19 14:23:11', '2022-10-15 15:07:35', '0');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571872412267134978', 'MYSQL', 0, 1, '2022-09-19 14:42:41', '2022-10-09 20:45:54', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571872439660134401', 'PYTHON', 0, 1, '2022-09-19 14:42:48', '2022-10-09 20:45:35', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571872685987414018', 'GOLANG', 0, 1, '2022-09-19 14:43:46', '2022-10-09 20:45:47', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571872784280928258', 'UI设计', 0, 1, '2022-09-19 14:44:10', '2022-10-09 20:45:50', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571873409936867330', 'Linux', 1, 1, '2022-09-19 14:46:39', '2022-10-11 15:03:18', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571873451057823746', 'Vue', 1, 1, '2022-09-19 14:46:49', '2022-10-11 14:35:09', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571873487476965377', 'Java', 1, 1, '2022-09-19 14:46:58', '2022-10-11 14:35:02', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571873525934538753', '自动化部署', 1, 1, '2022-09-19 14:47:07', '2022-10-11 14:34:29', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571883032840454146', 'f123123', 1, 1, '2022-09-19 15:24:53', '2022-09-24 05:19:04', '0');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571883042504130561', '123123123', 1, 1, '2022-09-19 15:24:56', '2022-09-24 05:19:02', '0');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571883049600892930', '444', 1, 1, '2022-09-19 15:24:57', '2022-09-24 05:19:00', '0');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571883058270519298', '分布式定时任务', 1, 1, '2022-09-19 15:24:59', '2022-10-11 14:34:09', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1571883065136594945', '消息中间件', 1, 1, '2022-09-19 15:25:01', '2022-10-11 14:33:42', '1');
INSERT INTO `t_article_category` (`id`, `name`, `enabled`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572979717222146049', 'Docker', 1, 1, '2022-09-22 16:02:43', '2022-10-11 14:33:15', '1');
COMMIT;

-- ----------------------------
-- Table structure for t_link
-- ----------------------------
DROP TABLE IF EXISTS `t_link`;
CREATE TABLE `t_link` (
  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '友情链接id',
  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '友链网站名称',
  `address` varchar(64) NOT NULL DEFAULT '1' COMMENT '友链网站地址',
  `type` varchar(20) NOT NULL DEFAULT 'success' COMMENT '类型',
  `sort` int(3) NOT NULL DEFAULT '1' COMMENT '排序',
  `version` bigint(20) unsigned DEFAULT '1' COMMENT '乐观锁',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除状态 : 1 未删除，0 已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of t_link
-- ----------------------------
BEGIN;
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572197191016751106', '虎牙', 'http://huya.com', 'success', 1, 1, '2022-09-20 12:13:15', '2022-09-20 13:50:17', '0');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572197234637512705', 'GIT', 'http://gitee.com', 'primary', 1, 1, '2022-09-20 12:13:25', '2022-09-20 13:50:27', '0');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572197347191660546', '112', '3', 'primary', 1, 1, '2022-09-20 12:13:52', '2022-09-20 13:50:41', '0');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572197368746188802', 'GIT', 'https://gitee.com/', 'success', 1, 1, '2022-09-20 12:13:57', '2022-09-24 04:09:34', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572197466888708098', '开源中国', 'https://www.oschina.net/', 'danger', 1, 1, '2022-09-20 12:14:20', '2022-09-24 04:10:33', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572218848276062210', '百度', 'http://www.baidu.com', 'success', 1, 1, '2022-09-20 13:39:18', '2022-09-20 13:39:18', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573525446676140034', '知乎', 'https://www.zhihu.com/', 'primary', 1, 1, '2022-09-24 04:11:15', '2022-09-24 04:11:15', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573525559368699905', '知识星球', 'https://www.zsxq.com/', 'warning', 1, 1, '2022-09-24 04:11:42', '2022-09-24 04:11:42', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573525739891544065', '特会管', 'https://thg.yiliancar.com/', 'info', 1, 1, '2022-09-24 04:12:25', '2022-09-24 04:12:25', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466601739399170', '史蒂夫；几十块的', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:44:43', '2022-09-29 12:44:43', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466634983452673', 'f阿斯顿发多少', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:44:51', '2022-09-29 12:44:51', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466665534763010', '我儿发生的', 'http://www.baidu.com', 'success', 1, 1, '2022-09-29 12:44:58', '2022-09-29 12:44:58', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466691614945281', '阿方索短发', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:45:04', '2022-09-29 12:45:04', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466726159233026', '委屈人问我', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:45:12', '2022-09-29 12:45:12', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466749580226562', '速度发多少', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:45:18', '2022-09-29 12:45:18', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466780622270466', '但还是大幅改善', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:45:25', '2022-09-29 12:45:25', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466806140416002', '回到宿舍', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:45:32', '2022-09-29 12:45:32', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466835433435138', '你说的风格', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:45:38', '2022-09-29 12:45:38', '1');
INSERT INTO `t_link` (`id`, `name`, `address`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1575466860746059778', '企鹅为人父', 'http://www.baidu.com', 'primary', 1, 1, '2022-09-29 12:45:45', '2022-09-29 12:45:45', '1');
COMMIT;

-- ----------------------------
-- Table structure for t_notice
-- ----------------------------
DROP TABLE IF EXISTS `t_notice`;
CREATE TABLE `t_notice` (
  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '通知id',
  `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '通知标题',
  `content` varchar(64) NOT NULL DEFAULT '1' COMMENT '通知正文',
  `type` varchar(20) NOT NULL DEFAULT 'success' COMMENT '类型',
  `sort` int(3) NOT NULL DEFAULT '1' COMMENT '排序',
  `version` bigint(20) unsigned DEFAULT '1' COMMENT '乐观锁',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除状态 : 1 未删除，0 已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of t_notice
-- ----------------------------
BEGIN;
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232468754026497', '十一放假通知', '十一放假啊', 'success', 1, 1, '2022-09-20 14:33:25', '2022-09-22 15:57:43', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232505013784577', '1123', '1123', 'primary', 1, 1, '2022-09-20 14:33:34', '2022-09-20 14:34:40', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232525041586178', '2', '2', 'primary', 2, 1, '2022-09-20 14:33:39', '2022-09-20 14:33:39', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232546357039106', '3', '3', 'primary', 3, 1, '2022-09-20 14:33:44', '2022-09-20 14:33:44', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232603194052610', '4', '4', 'success', 4, 1, '2022-09-20 14:33:57', '2022-09-20 14:33:57', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232624039743489', '5', '5', 'primary', 5, 1, '2022-09-20 14:34:02', '2022-09-20 14:34:02', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232647171330050', '6', '6', 'primary', 6, 1, '2022-09-20 14:34:08', '2022-09-20 14:34:08', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232665701765122', '7', '7', 'primary', 7, 1, '2022-09-20 14:34:12', '2022-09-20 14:34:12', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232692268486657', '8', '8', 'primary', 8, 1, '2022-09-20 14:34:19', '2022-09-20 14:34:19', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232715551068162', '9', '9', 'primary', 9, 1, '2022-09-20 14:34:24', '2022-09-20 14:34:24', '1');
INSERT INTO `t_notice` (`id`, `title`, `content`, `type`, `sort`, `version`, `create_time`, `update_time`, `status`) VALUES ('1572232738544242690', '11', '11', 'primary', 11, 1, '2022-09-20 14:34:30', '2022-09-20 14:34:30', '1');
COMMIT;

-- ----------------------------
-- Table structure for t_tag
-- ----------------------------
DROP TABLE IF EXISTS `t_tag`;
CREATE TABLE `t_tag` (
  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签id',
  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签名称',
  `type` varchar(32) DEFAULT NULL COMMENT '标签类型',
  `version` bigint(20) unsigned DEFAULT '1' COMMENT '乐观锁',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除状态 : 1 未删除，0 已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='标签信息表';

-- ----------------------------
-- Records of t_tag
-- ----------------------------
BEGIN;
INSERT INTO `t_tag` (`id`, `name`, `type`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573667868286631937', '12', 'primary', 1, '2022-09-24 13:37:11', '2022-09-24 13:37:23', '0');
INSERT INTO `t_tag` (`id`, `name`, `type`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573667938125987841', '123', 'primary', 1, '2022-09-24 13:37:28', '2022-09-24 13:37:28', '1');
INSERT INTO `t_tag` (`id`, `name`, `type`, `version`, `create_time`, `update_time`, `status`) VALUES ('1573667962041909250', '1234', 'success', 1, '2022-09-24 13:37:34', '2022-09-24 13:37:34', '1');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;
